Avatar billede slowaterz Nybegynder
22. november 2000 - 14:12 Der er 2 kommentarer og
1 løsning

Adgang til NT environment variabler fra et Delphi program

Er det muligt at få fat i de environment variabler, Windows NT opretter ? (%username%)
Hvis ja - hvordan ?

slowaterz
Avatar billede borrisholt Novice
22. november 2000 - 14:14 #1
Brugernavnet får du fat i sådan her :

Function GetCurrentUserName : String;
var
  Size : Cardinal;
begin
Size := MAX_PATH;
SetLength(Result, Size);
Windows.GetUserName(PChar(Result),Size);
SetLength(Result, Pred(Pos(#0,Result)));
end;


De resterende variabler fanger du sådan her :

Function GetEnvVar(const csVarName : String ) : String;
const
{
change the following value if you
expect more than 250 char values
from env. vars. set to 250 by
default to be compatible with
16bit versions of Delphi
}
  cnMaxVarValueSize = 250;
var
  pc1, pc2  : PChar;
begin

{
although you can use huge Strings with
Delphi 4.x, we\'ll use good old PChars
and allocate memory here
}
  pc1 := StrAlloc( Length( csVarName )+1 );
  pc2 := StrAlloc( cnMaxVarValueSize + 1 );
  StrPCopy( pc1, csVarName );
  GetEnvironmentVariableA( pc1, pc2, cnMaxVarValueSize );
  Result := StrPas( pc2 );
  StrDispose( pc1 );
  StrDispose( pc2 );
end;


Jens B
Avatar billede slowaterz Nybegynder
22. november 2000 - 14:34 #2
Kan du give noget uddybende forklaring ? Det virker lidt kryptisk. Jeg kan finde forklaring til alle de ting, du gør i koden, men det forvirrer bare endnu mere.
Avatar billede borrisholt Novice
22. november 2000 - 14:40 #3
GetCurrentUserName er vel lige til ?

Til den adnden prøv en form en knap og et memo. Og så det følgende kode :

Memo1.Lines.Add(GetEnvVar(\'ComSpec\'));
Memo1.Lines.Add(GetEnvVar(\'Path\'));


Jens B

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester