Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как узнать имя Виндузового пользователя / 7 сообщений из 7, страница 1 из 1
18.03.2003, 16:57
    #32122323
Белов Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя Виндузового пользователя
т.е. нужно в итоге получить
MyDomen/UserName ?
...
Рейтинг: 0 / 0
18.03.2003, 17:18
    #32122343
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя Виндузового пользователя
/topic/17320
...
Рейтинг: 0 / 0
18.03.2003, 17:21
    #32122346
Белов Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя Виндузового пользователя
Спасибо.
...
Рейтинг: 0 / 0
18.03.2003, 20:22
    #32122470
aLexx Subb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя Виндузового пользователя
Так комп определяется

function GetComputerName: string;
var Ch :PChar;
{$IFDEF VER100} { Borland Delphi 3.0 }
Size :Integer;
{$ELSE}
Size :Cardinal;
{$ENDIF}
begin
Size := MAX_COMPUTERNAME_LENGTH + 1;
Ch := StrAlloc(Size);
Windows.GetComputerName (Ch, Size);
Result := StrPas (Ch);
StrDispose (Ch)
end;

Есть вариант еще через ADSI. Все можно определить.

А так можно юзера зарубить
function GetUserName:string;
{Определение имени пользователя}
var
Buffer: array[0..MAX_PATH] of Char;
sz:DWord;
begin
sz:=MAX_PATH-1;
if windows.GetUserName(Buffer,sz)
then begin
if sz>0 then dec(sz);
SetString(Result,Buffer,sz);
end else begin
Result:='Error '+inttostr(GetLastError);
end;
end;

Пользуй :)
...
Рейтинг: 0 / 0
19.03.2003, 07:30
    #32122536
Alex Alexeev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя Виндузового пользователя
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
function CurrentAccount : String;
 type
    TOKEN_USER = record
      User : TSidAndAttributes;
    end;
     PTOKEN_USER = ^TOKEN_USER;

  var szUser,
      szDomain : array [ 0 .. 255 ] of Char;
      cbSize,
      cbUser,
      cbDomain : DWORD;
      hToken   : THandle;
      pUser    : PTOKEN_USER;
      sid_use  : SID_NAME_USE;
begin
  Result := '';
  cbUser :=  256 ;
  cbDomain :=  256 ;
  ZeroMemory(@szUser, cbUser);
  ZeroMemory(@szDomain, cbDomain);

  if not OpenThreadToken(GetCurrentThread, TOKEN_QUERY, true, hToken) then
  begin
    if GetLastError <> ERROR_NO_TOKEN then Exit;
    if not OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, hToken) then exit;
  end;

  if not GetTokenInformation(hToken, TokenUser, nil,  0 , cbSize) then
    if GetLastError <> ERROR_INSUFFICIENT_BUFFER then
    begin
      CloseHandle(hToken);
      Exit;
    end;

    GetMem(pUser, cbSize);
  try
    if not GetTokenInformation(hToken, TokenUser, pUser, cbSize, cbSize) then Raise Exception.Create('');
    LookupAccountSid(nil, pUser.User.Sid, @szUser, cbUser, @szDomain, cbDomain, sid_use);
    Result := Format('%s\%s', [StrPas(szDomain), StrPas(szUser)]);
  finally
    FreeMem(pUser);
    CloseHandle(hToken);
  end;
  
end;
...
Рейтинг: 0 / 0
19.03.2003, 08:11
    #32122552
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя Виндузового пользователя
Ну и написали...
А что, в реестре слабо глянуть???
...
Рейтинг: 0 / 0
19.03.2003, 09:39
    #32122598
Белов Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать имя Виндузового пользователя
Можно, конечно и через реестр.
Но, ИМХО, лучше все-таки данную инфу получить через API
Ещё раз спасибо всем.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как узнать имя Виндузового пользователя / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]