![]() |
Registry übernimmt die Werte nicht
Hallo,
die unten stehende Prozedur soll die Werte in die Registry schreiben. Funktioniert aber nicht, warum auch immer.
Delphi-Quellcode:
Diese wird aufgerufen, wenn man beim Speichern die Option "Ja" gewählt hat.
procedure WriteRegistry;
var Reg: TRegistry; line: String; begin if (FMyProxy = '') or (FMyProxyPort = '') then MessageDlg('Sie müssen einen Proxyserver angeben, über den Sie' + #13#10 + 'eine korrekte Internetverbindung herstellen können!', mtWarning, [mbOK], 0) else if (FMyProxy <> FCheckProxy) or (FMyProxyPort <> FCheckProxyPort) then begin line := FMyProxy + ':' + FMyProxyPort; Reg := TRegistry.Create; Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey('\Software\Tisy Zeitermittlung\',True); if FProxyArt = 2 then Reg.WriteString('ProxyServer',line); Reg.WriteInteger('ProxyEnable',FProxyArt); Reg.WriteInteger('Synctime',FSynctime); Reg.CloseKey; Reg.Free; end; end; |
Re: Registry übernimmt die Werte nicht
Beschreibe doch mal bitte etwas genauer, was nicht funktioniert. Hast Du das Programm schon einmal zeilenweise debugt, um festzustellen, ob die einzelnen Anweisungen überhaupt angesprungen und ausgeführt werden?
|
Re: Registry übernimmt die Werte nicht
Hai Ente,
unabhängig warum es bei Dir nicht geht ;-) Solche Einträge gehören nicht in HKEY_LOCAL_MACHINE ein "normaler" Benutzer hat dort nämlich überhaupt keine Schreibrechte. |
Sie werden nicht ausgeführt, obwohl es eigentlich passieren müsste.
Ich hab noch eine Prozedur ReadRegistry und dort speichere ich mir die Werte in den Variablen FCheckProxy und FCheckProxyPort, um sie in der WriteRegistry vergleichen zu können. Aber es funktioniert nicht, obwohl ich die Werte verändere! :shock: |
Zitat:
|
Re: Registry übernimmt die Werte nicht
Brechpunkte & F7/F8 sind deine Freunde
|
Er kommt dahin, dass gefragt wird if (FMyProxy <> FCheckProxy) or (FMyProxyPort <>FCheckProxyPort) then aber dann springt er direkt zum end;
Das darf gar nicht sein, hier mal die ReadRegistry:
Delphi-Quellcode:
procedure ReadRegistry;
var Reg: TRegistry; line: String; begin Reg := TRegistry.Create; Reg.RootKey := HKEY_CURRENT_USER; Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings\',True); line := Reg.ReadString('ProxyServer'); if line <> '' then begin if not ((Ord(line[1])>=48) and (Ord(line[1])<=57)) then begin if pos('http=',line) > 0 then begin Delete(line,1,pos('http=',line)-1); line := copy(line,6,pos(';',line)-6); end end; FSystemProxy := copy(line,1,pos(':',line)-1); FSystemProxyPort := copy(line,pos(':',line)+1,length(line)-1); end else begin FSystemProxy := ''; FSystemProxyPort := '0'; end; Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey('Software\Tisy Zeitermittlung\',True); if Reg.ValueExists('ProxyServer') then begin line := Reg.ReadString('ProxyServer'); FMyProxy := copy(line,1,pos(':',line)-1); FMyProxyPort := copy(line,pos(':',line)+1,length(line)-1); end else begin FMyProxy := ''; FMyProxyPort := '0'; end; if not (Reg.ValueExists('Synctime')) then Reg.WriteInteger('Synctime',60000); FSynctime := Reg.ReadInteger('Synctime'); FProxyArt := Reg.ReadInteger('ProxyEnable'); Reg.Free; FCheckProxy := FMyProxy; FCheckProxyPort := FMyProxyPort; end; |
Re: Registry übernimmt die Werte nicht
auch hier wieder HKLM ... -.-°
|
Ich bin Administrator am PC -> ergo hab ich Schreibrechte! ;)
Daran liegt's schon mal net.. |
Re: Registry übernimmt die Werte nicht
du solltest es dennoch umstellen, denn nicht jeder benutzer deines programms wird über administrator rechte verfügen (wennses richtig machen) denk ich mal
und probiers mit dem was ich dir vor zehn minuten schon geraten habe |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 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