Einzelnen Beitrag anzeigen

Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#13

Re: Programm funktioniert nur unter XP

  Alt 3. Jan 2006, 05:19
Als erstes brauchst du die Funktion von Windows.
Zitat:
The GetEnvironmentVariable function retrieves the value of the specified variable from the environment block of the calling process. The value is in the form of a null-terminated string of characters.

DWORD GetEnvironmentVariable(

LPCTSTR lpName, // address of environment variable name
LPTSTR lpBuffer, // address of buffer for variable value
DWORD nSize // size of buffer, in characters
);

Parameters
lpName
Points to a null-terminated string that specifies the environment variable.

lpBuffer
Points to a buffer to receive the value of the specified environment variable.

nSize
Specifies the size, in characters, of the buffer pointed to by the lpBuffer parameter.

Return Values
If the function succeeds, the return value is the number of characters stored into the buffer pointed to by lpBuffer, not including the terminating null character.
If the specified environment variable name was not found in the environment block for the current process, the return value is zero.
If the buffer pointed to by lpBuffer is not large enough, the return value is the buffer size, in characters, required to hold the value string and its terminating null character.
Windows.pas:
Delphi-Quellcode:
function GetEnvironmentVariable(lpName: PChar; lpBuffer: PChar; nSize: DWORD): DWORD; stdcall; overload;
{$EXTERNALSYM GetEnvironmentVariable}
//(c) by Borland
Sysutils.pas:
Delphi-Quellcode:
function GetEnvironmentVariable(const Name: string): string;
var
  Len: integer;
begin
  Result := '';
  Len := GetEnvironmentVariable(PChar(Name), nil, 0);
  if Len > 0 then
  begin
    SetLength(Result, Len - 1);
    GetEnvironmentVariable(PChar(Name), PChar(Result), Len);
  end;
end;
//(c) by Borland
Natürlich reicht auch die erste Deklaration, wenn du kein Problem mit PChar hast.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat