Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
Delphi 3 Professional
|
Desktop-Pfad ermitteln
9. Mär 2003, 18:35
Diese Funktion muss in den Quellcode eingefügt werden:
Delphi-Quellcode:
function ReadStringFromRegAPI(const p_sSubKey : string; const p_sValueName : string;var p_sResult : string) : integer;
var
hResult : HKEY;
dwMaxValueLen : DWORD;
szResult : PChar;
begin
Result := RegOpenKeyEx(HKEY_CURRENT_USER,PChar(p_sSubKey),0,KEY_ALL_ACCESS,hResult);
if Result <> ERROR_SUCCESS then
begin
exit;
end;
try
Result := RegQueryInfoKey(hResult,nil,nil,nil,nil,nil,nil,nil,nil,@dwMaxValueLen,nil,nil);
if Result <> ERROR_SUCCESS then
begin
exit;
end;
inc(dwMaxValueLen);
szResult := StrAlloc(dwMaxValueLen);
try
Result := RegQueryValueEx(hResult,PChar(p_sValueName),nil,nil,PByte(szResult),@dwMaxValueLen);
if Result <> ERROR_SUCCESS then
begin
exit;
end;
p_sResult := trim(szResult);
finally
StrDispose(szResult);
end;
finally
RegCloseKey(hResult);
end;
end;
So muss die Ereignis-Prozedur aussehen (Ausgabe des Pfades in einer Messagebox):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
iResult : integer;
sResult : string;
begin
iResult := ReadStringFromRegAPI('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','Desktop',sResult);
if iResult <> ERROR_SUCCESS then
begin
ShowMessage(SysErrorMessage(iResult));
end
else
begin
ShowMessage(sResult);
end;
end;
Sport ist mord...
|
|
Zitat
|