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?