Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2009, 16:25   #1
KEV
Пользователь
 
Регистрация: 22.01.2009
Сообщений: 29
Печаль залогиненный пользователь на удаленной машине

Ув. товарищи, подскажите в какую сторону глядеть по вопросу получения логина пользователя или имени пользователя на удалённой машине в условиях домена ... буду рад любому ответу
KEV вне форума Ответить с цитированием
Старый 25.09.2009, 16:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Загляни сюда
http://www.programmersforum.ru/showt...tWkstaUserEnum
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.09.2009, 17:01   #3
KEV
Пользователь
 
Регистрация: 22.01.2009
Сообщений: 29
По умолчанию

так ведь это пользователь&&список пользователей локальной машины, меня больше интересует именнно удалённые. или я чего-то не понимаю ?
KEV вне форума Ответить с цитированием
Старый 25.09.2009, 17:10   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

WkstaUserEnum как раз получает пользователей залогиненых на удаленной машине:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
   _WKSTA_USER_INFO_1 = record
     wkui1_username: LPWSTR;
     wkui1_logon_domain: LPWSTR;
     wkui1_oth_domains: LPWSTR;
      wkui1_logon_server: LPWSTR;
  end;
   WKSTA_USER_INFO_1 = _WKSTA_USER_INFO_1;
   PWKSTA_USER_INFO_1 = ^_WKSTA_USER_INFO_1;
   LPWKSTA_USER_INFO_1 = ^_WKSTA_USER_INFO_1;

  TForm1 = class(TForm)
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
   function NetApiBufferFree(pBuffer: pointer): Longint; stdcall; external
 'netapi32.dll';

          function NetWkstaUserEnum(ServerName: LPCWSTR;Level: DWORD;
     BufPtr: Pointer;PrefMaxLen: DWORD;EntriesRead: LPDWORD;
     TotalEntries: LPDWORD;ResumeHandle: LPDWORD): LongInt; stdcall; external 'netapi32.dll';

var
  Form1: TForm1;

implementation

{$R *.dfm}
    function  GetUsers(CompName: String): String;

   var
   Buffer, tmpBuffer: Pointer;
    PrefMaxLen       : DWORD;
  Resume_Handle    : DWORD;
  EntriesRead      : DWORD;
   TotalEntries     : DWORD;
 I, Size          : Integer;
 PSrvr            : PWideChar;
 begin
PSrvr := nil;
 try
    // Переводим имя компьютера типа PWideChar
   Size := Length(CompName);
    GetMem(PSrvr, Size * SizeOf(WideChar) + 1);
    StringToWideChar(CompName, PSrvr, Size + 1);
   PrefMaxLen := DWORD(-1);
     EntriesRead := 0;
    TotalEntries := 0;
    Resume_Handle := 0;
    Buffer := nil;
  // Получаем список пользователей на компьютере из PSrvr
           if NetWkstaUserEnum( PSrvr, 1, @Buffer, PrefMaxLen, @EntriesRead,
             @TotalEntries, @Resume_Handle) = S_OK then
           begin
             tmpBuffer := Pointer(DWORD(Buffer) + SizeOf(WKSTA_USER_INFO_1));
             for I := 1 to TotalEntries - 1 do
             begin
               Result := Result + WKSTA_USER_INFO_1(tmpBuffer^).wkui1_username + ', ';
               tmpBuffer := Pointer(DWORD(tmpBuffer) + SizeOf(WKSTA_USER_INFO_1));
            end;
            Result := Copy(Result, 1, Length(Result) - 2);
    end
    else
       ShowMessage(SysErrorMessage(GetLastError));
   finally
       NetApiBufferFree(Buffer);
       FreeMem(PSrvr);
   end;
    end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ListBox1.Items.Text:=GetUsers('Имя машины');
end;

end.
Ферштеен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.09.2009, 17:16   #5
KEV
Пользователь
 
Регистрация: 22.01.2009
Сообщений: 29
По умолчанию

Ya-YA , натюрлих
град мерси ...
KEV вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
взаимодествие 2 программ на одной машине neomichi Общие вопросы .NET 2 14.07.2009 23:26
Авторизация на удаленной машине Баламут Работа с сетью в Delphi 2 03.03.2009 08:16
Авторизация на другой машине Незнайка Общие вопросы .NET 1 17.05.2008 21:50
Запускпрограммы на другой машине(interbase) pro2f БД в Delphi 6 30.09.2007 13:36