Woher bekomme ich die verschiedenen Systemeinstellungen wie Programmordner, Usernamen, ...?
Viele Einstellungen, wie Auflösung, Farbtiefe, Breite der Scrollbalken, etc. -d.h. alle Einstellungen, die man im "Eigenschaften"-Dialog des Desktops vornimmt- ermittelt man mit der API-Funktion "GetSystemMetrics".
Hier ein paar Funktionen für die folgenden Informationen:
function ProductID : string; var Reg : TRegistry; begin Reg := TRegistry.Create; Reg.Rootkey := HKEY_LOCAL_MACHINE; if Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion',false) then Result := Reg.ReadString('ProductId') else Result := '0'; Reg.Free; end; function OwnerName : string; var Reg : TRegistry; begin Reg := TRegistry.Create; Reg.Rootkey := HKEY_LOCAL_MACHINE; if Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion',false) then Result := Reg.ReadString('RegisteredOwner') else Result := ''; Reg.Free; end; function Username : string; var UName : PChar; USize : integer; begin USize := 100; UName := StrAlloc(USize); GetUserName(UName,USize); Result := string(UName); StrDispose(UName); end; function WindowsDirectory :string; var WinDir : PChar; begin WinDir := StrAlloc(Max_Path); GetWindowsDirectory(WinDir,Max_Path); Result := String(WinDir); if Result[length(Result)]<>'\' then Result := Result+'\'; end; function SystemDirectory : string; var SysDir : PChar; begin SysDir := StrAlloc(Max_Path); GetSystemDirectory(SysDir,Max_Path); Result := String(SysDir); if Result[length(Result)]<><>'\' then Result := Result+'\'; end; function ProgFilesDirectory : string; var Reg : TRegistry; begin Reg := TRegistry.Create; Reg.Rootkey:=HKEY_LOCAL_MACHINE; if Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion',false) then Result := Reg.ReadString('ProgramFilesDir')+'\' else Result := ''; Reg.Free; end; function CommonFilesDir : string; var Reg : TRegistry; begin Reg := TRegistry.Create; Reg.Rootkey:=HKEY_LOCAL_MACHINE; if Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion',false) then Result := Reg.ReadString('CommonFilesDir')+'\' else Result := ''; Reg.Free; end; function ConfigPath : string; var Reg : TRegistry; begin Reg := TRegistry.Create; Reg.Rootkey := HKEY_LOCAL_MACHINE; if Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion',false) then Result := Reg.ReadString('ConfigPath')+'\' else Result := 'KeinName'; Reg.Free; end; function DevicePath : string; var Reg : TRegistry; begin Reg := TRegistry.Create; Reg.Rootkey := HKEY_LOCAL_MACHINE; if Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion',false) then Result := Reg.ReadString('DevicePath')+'\' else Result := 'KeinName'; Reg.Free; end; function MediaPath : string; var Reg : TRegistry; begin Reg := TRegistry.Create; Reg.Rootkey := HKEY_LOCAL_MACHINE; if Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion',false) then Result := Reg.ReadString('MediaPath')+'\' else Result := 'KeinName'; Reg.Free; end;
Delphi 1 | Delphi 2 | Delphi 3 | Delphi 4 |
nicht getestet | Version nicht betroffen | getestet |
siehe auch:
Wie kann ich die aktuelle Zeitzone des Betriebssystems ermitteln?