![]() |
Grösse in Bytes eines Keys der registry bekommen
hi,
Delphi-Quellcode:
showmessage zeigt mir immer 0 an, der key "RootKey" existiert aber...wieso bekomme ich nicht die richtige länge des strings angezeigt?
var
Key: HKEY; phkResult: HKEY; uType: DWORD; uPathSize: DWORD; begin Key := HKEY_LOCAL_MACHINE; if RegOpenKeyEx(Key, 'SOFTWARE\Borland\Delphi\7.0', 0, KEY_READ, phkResult) = ERROR_SUCCESS then begin RegQueryValueEx(Key, 'RootDir', nil, @uType, nil, @uPathSize); Showmessage(inttostr(uPathSize)); end; end. |
Re: Grösse in Bytes eines Keys der registry bekommen
Setz mal uType vorher auf 0 um anzuzeigen das du jeden Registry-Typen akzeptierst.
Ansonsten sieht es gut aus. |
Re: Grösse in Bytes eines Keys der registry bekommen
Liste der Anhänge anzeigen (Anzahl: 1)
moin robert, auch das klappt nicht :(... siehe screenshoot im anhang. Damits mir auch glaubt *g*
|
Re: Grösse in Bytes eines Keys der registry bekommen
Erstens mal mit REG_SZ probieren und dann pruefen ob auch die richtige Funktion aufgerufen wird.
Bei Rechtsklick in der IDE und "Deklaration" sollte man in Windows.pas landen. |
Re: Grösse in Bytes eines Keys der registry bekommen
Wie meinst du das mit prüfen ob es die richtige funktion ist? RegQueryValueEx müsste doch stimmen oder?
|
Re: Grösse in Bytes eines Keys der registry bekommen
Es kann immer mal sein das je nach Uses-Liste eine falsche Funktion gelinkt wird.
|
Re: Grösse in Bytes eines Keys der registry bekommen
scheint aber richtig zu sein, ich komme in die windows.pas an zeile "function RegQueryValueEx; external advapi32 name 'RegQueryValueExA';"
hm...das problem ist jetzt nur....wo liegt der fehler dann? wie gesagt der pfad muss stimmen...tut er ja auch, sonst würde das showmessage gar nicht ausgeführt werden und der Key "RootDir" existiert auch...den hat ja jeder der delphi 7 hat...hmmm |
Re: Grösse in Bytes eines Keys der registry bekommen
Moin Mario,
warum verlässt Du Dich drauf, dass RegQueryValueEx nicht fehlschlägt? Prüf' das mal lieber:
Delphi-Quellcode:
Ausserdem fehlen try/finally und RegCloseKey ;-)
if RegQueryValueEx(....) <> ERROR_SUCCESS then begin
ShowMessage(SysErrorMessage(GetLastError)); end else begin ShowMessage(....); end; |
Re: Grösse in Bytes eines Keys der registry bekommen
moin christian,
danke für deine antwort. ich bekomme den fehler zurückgegeben beim showmessage: "Der angegebene Ressourcentyp wurde nicht in der Image-datei gefunden" was heisst das denn? :shock: welche image datei :gruebel: |
Re: Grösse in Bytes eines Keys der registry bekommen
Delphi-Quellcode:
const
S_KEYNAME = 'SOFTWARE\Borland\Delphi\7.0'; S_VALUENAME = 'RootDir'; var CurrentKey: HKEY; Path: String; Size: DWORD; begin if RegOpenKeyEx(HKEY_LOCAL_MACHINE, S_KEYNAME, 0, KEY_READ, CurrentKey) = ERROR_SUCCESS then begin SetLength(Path, MAX_PATH); Size := Length(Path); if RegQueryValueEx(CurrentKey, S_VALUENAME, nil, nil, PByte(PChar(Path)), @Size) = ERROR_SUCCESS then begin SetLength(Path, Size); ShowMessage(Path); end; RegCloseKey(CurrentKey); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 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