Thema: Delphi Desktop-Pfad ermitteln

Einzelnen Beitrag anzeigen

Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#1

Desktop-Pfad ermitteln

  Alt 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...
  Mit Zitat antworten Zitat