AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Ändern der Einstellung "Dialog zu Bestätigung anzeigen"
Thema durchsuchen
Ansicht
Themen-Optionen

Ändern der Einstellung "Dialog zu Bestätigung anzeigen"

Ein Thema von Sliver · begonnen am 5. Okt 2004 · letzter Beitrag vom 7. Feb 2005
Antwort Antwort
Seite 2 von 2     12   
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Ändern der Einstellung "Dialog zu Bestätigung anzei

  Alt 29. Nov 2004, 18:56
Moin Sliver,

es hindert Dich niemand daran die Funktion SHGetSetStettings selber zu importieren
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Sliver

Registriert seit: 27. Jul 2004
18 Beiträge
 
#12

Re: Ändern der Einstellung "Dialog zu Bestätigung anzei

  Alt 29. Nov 2004, 19:50
s. acht Posts weiter oben. Dann ergibt sich eben dieses Problem, dass ich bis jetzt nur über die Variante die ich jetzt brauche umgehen konnte.
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#13

Re: Ändern der Einstellung "Dialog zu Bestätigung anzei

  Alt 6. Feb 2005, 09:46
Zitat:
Ich lese die Binäre Einträge wie oben in Strings ein. Danach nehm ich den ordinalen Wert jedes Zeichen und rechne ihn ins Binärsystem um. Danach kann ich das Bit setzen das ich will und wieder zurück speichern in die Registry. Funktioniert einwandfrei, aber ist ein bisschen umständlich und es gibt sichere bessere Lösungen.
@Silver: Kannste bitte mal deinen Source-Code für diese Routine posten?
  Mit Zitat antworten Zitat
Sliver

Registriert seit: 27. Jul 2004
18 Beiträge
 
#14

Re: Ändern der Einstellung "Dialog zu Bestätigung anzei

  Alt 6. Feb 2005, 16:58
Sind verschiedene Routinen
Delphi-Quellcode:
procedure regWriteBitinBinary(RootKey:Cardinal;OpenKey,ValueName:String;bit:Word;Value:Boolean);
var
  s,s2:String;
begin
  s:=regReadBinary(RootKey,OpenKey,ValueName);
  s2:=byteToBin(ord(s[((bit-1) div 8)+1]));
  s2[((bit-1) mod 8)+1]:=IntToStr(Integer(Value))[1];
  s[((bit-1) div 8)+1]:=Chr(binToByte(s2));
  regWriteBinary(RootKey,OpenKey,ValueName,s);
end;

function regReadBitinBinary(RootKey:Cardinal;OpenKey,ValueName:String;bit:Word):Boolean;
var
  s,s2:String;
begin
  s:=regReadBinary(RootKey,OpenKey,ValueName);
  s2:=byteToBin(ord(s[((bit-1) div 8)+1]));
  Result:=Boolean(StrToInt(s2[((bit-1) mod 8)+1]));
end;

procedure regWriteBinary(RootKey:Cardinal;OpenKey,ValueName,Value:String);
var
  Reg:TRegistry;
begin
  Reg:=TRegistry.Create;
  try
    Reg.RootKey:=RootKey;
    Reg.OpenKey(OpenKey,True);
    RegSetValueEx(Reg.CurrentKey,PChar(ValueName),0,REG_BINARY,PChar(Value),Length(Value));
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
end;

function regReadBinary(RootKey:Cardinal;OpenKey,ValueName:String):String;
var
  Reg:TRegistry;
  s:String;
  i:Integer;
begin
  Reg:=TRegistry.Create;
  try
    Reg.RootKey:=RootKey;
    Reg.OpenKeyReadOnly(OpenKey);
    i:=Reg.GetDataSize(ValueName);
    SetLength(s,i);
    Reg.ReadBinaryData(ValueName,s[1],i);
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
  Result:=s;
end;

function binToByte(s:String):Byte;
var
  i:Byte;
begin
  Result:=0;
  for i:=7 downto 0 do
    if s[8-i]='1then
      Inc(Result,Trunc(Power(2,i)));
end;

function byteToBin(b:Byte):String;
var
  i:Word;
begin
  Result:='';
  for i:=7 downto 0 do
    if (b and(1 shl i))>0 then
      Result:=Result+'1'
    else
      Result:=Result+'0';
end;
Hab einfach mal alles rauskopiert, was wichtig sein könnte. Aber wie gesagt, gibt sicher bessere Lösungen. Bin momentan alle Einstellungen direkt über die Windows API am implementieren, was sicher auch die korrekte Lösung wäre. Muss mich da noch durch ein paar Probleme durchschlagen, hoffe aber ich bring es zum laufen.

cu Sliver
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#15

Re: Ändern der Einstellung "Dialog zu Bestätigung anzei

  Alt 6. Feb 2005, 20:05
Wäre super, wenn du ne kürzere, einfachere Variante proggen könntest. Ich kenn mich zwar mit der Registry aus, aber die Umwandlung mit regWriteBitinBinary oder regReadBitinBinary ist mir doch ein wenig zu kompliziert. Es muss hier doch ein paar Freaks geben, die dieses Problem elegant gelöst haben^^
Weiter Viel Erfolg dabei!

mfg Nogge
  Mit Zitat antworten Zitat
Sliver

Registriert seit: 27. Jul 2004
18 Beiträge
 
#16

Re: Ändern der Einstellung "Dialog zu Bestätigung anzei

  Alt 6. Feb 2005, 20:12
Ich vermute nach der Theorie, die ich hatte, gibt es keine elegantere Lösung. Ich habe die Methoden von meinem Projekt übernommen, bei dem ich einzelne dieser Methoden mehrmals brauche. Darum macht es für mich so sehr viel Sinn. Aber ich denke, alles in eine Methode hineinpacken wirst du sicher fertig kriegen, danach den Code nach meiner Theorie weiter oben durchdenken. Die elgantere Lösung ist wie gesagt immer noch die über die Windows API.
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#17

Re: Ändern der Einstellung "Dialog zu Bestätigung anzei

  Alt 6. Feb 2005, 21:48
Zitat:
Die elgantere Lösung ist wie gesagt immer noch die über die Windows API.
Wie sollte denn der Ansatz dafür aussehen? Ich habe gerade keine Ahnung, was du damit meinst. Ich würde das sonst vllt mal versuchen, wenns nicht zu komplex (= zu viel Arbeit^^) wird.
  Mit Zitat antworten Zitat
Sliver

Registriert seit: 27. Jul 2004
18 Beiträge
 
#18

Re: Ändern der Einstellung "Dialog zu Bestätigung anzei

  Alt 7. Feb 2005, 10:09
Ganz am Anfang dieses Thread haben wir über die Problematik diskutiert, bis ich auf die Variante (s. Code) gekommen bin. Das schwierige ist die Implementation der Win API, der Rest ist dann einfach. Mal den ganzen Thread durchlesen. Wenn es dann noch nicht klar ist meine jetzige Lösung nehmen oder sein lassen.

cu Sliver
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz