Pełna nazwa u?żytkownika...

0

Wie ktoś, jak uzyskać pełną nazwę użytkownika (WinXP)? Szukałem i nic nie znalazłem, więc napisałem własną, prowizoryczną funkcję:

function LongUserName:String;
var H:Integer;
    P:array[0..144]of char;
begin
H:=FindWindow('DV2ControlHost', nil);
H:=FindWindowEX( H  , 0, 'Desktop User Pane', nil);
H:=FindWindowEX( H  , 0, 'Static', nil);
GetWindowText(H, P, 144);
Result:=StrPas(P);
end;

Szkoda tylko, że nie działa gdy ktoś ma włączone "Klasyczne Menu start" ... [stuk]

Może zna ktoś bardziej fachowy sposób ?

Dzieki z gory
Pozdrawia cimak

0

a metoda z FAQ nie działą na XP?

GetUserName + [F1]

0

Aw szkole mam np. KowalskiJ2c a w Menu start będzie się wyświetlać Jan Kowalski. Metoda z faq zwróci tylko KowalskiJ2c a nie o to mi chodzi...

0

Ziom, słuchaj - jak sie ma Windows SDK to sie wie!!!
Tam to jest...
a zreszta pogadamy w szkole...

Tylko nie wiem jak to cholerstwo wrzucic do Delphi, bo w SDK jest przyklad w VB, którego nie znam...

0
var buffer:string;
buffSize:DWORD;
begin
buffSize:=10;
SetLength(buffer,BuffSize);
GetUserName(PChar(buffer), buffSize);
ShowMessage(buffer);

może trzeba zwiększyć buffsize ?? np. na 50

0
var buffer:string;
buffSize:DWORD;
begin
buffSize:=10;
SetLength(buffer,BuffSize);
GetUserName(PChar(buffer), buffSize);
ShowMessage(buffer);

to ci zwroci tylko nazwe typu kowalskij2c a nie "Jan Kowalski"

1 użytkowników online, w tym zalogowanych: 0, gości: 1