![]() |
Re: Ändern der Einstellung "Dialog zu Bestätigung anzei
Moin Sliver,
es hindert Dich niemand daran die Funktion SHGetSetStettings selber zu importieren ;-) |
Re: Ändern der Einstellung "Dialog zu Bestätigung anzei
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.
|
Re: Ändern der Einstellung "Dialog zu Bestätigung anzei
Zitat:
|
Re: Ändern der Einstellung "Dialog zu Bestätigung anzei
Sind verschiedene Routinen
Delphi-Quellcode:
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.
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]='1' then 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; cu Sliver |
Re: Ändern der Einstellung "Dialog zu Bestätigung anzei
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 |
Re: Ändern der Einstellung "Dialog zu Bestätigung anzei
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.
|
Re: Ändern der Einstellung "Dialog zu Bestätigung anzei
Zitat:
|
Re: Ändern der Einstellung "Dialog zu Bestätigung anzei
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz