Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Вниз

Как определить группу в которой находится юзер?   Найти похожие ветки 

 
Matrex ©   (2004-12-25 23:31) [0]

Как определить группу в локальной сети в которой находится юзер?


 
Matrex ©   (2004-12-25 23:34) [1]

Сори... Добавлю: Подойдел любой вариант - по IP, по имени в сети...


 
Яичница ©   (2004-12-26 04:10) [2]

Код написан не кошерно, надо приводить в порядок...Но думаю. что в качестве толчка в нужном направлении сойдет. -)

type
 TForm1 = class(TForm)
   Button1: TButton;
   ListBox1: TListBox;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
   end;
type
   GROUP_USERS_INFO_0 = record
   grui0_name:PWideChar;
   end;
var
  LibHandle: LongWord;
  NetUserGetGroup:function(
      lpwServer: PWideChar;
      lpwUser : PWideChar;
      level:DWORD;
      bufptr:PBYTE;
      prefmaxlen:DWORD ;
      var entriesread:DWORD ;
      var totalentries :DWORD
      ):cardinal stdcall;

    Form1: TForm1;
  function GetUserGroups(lpwServer,lpwUser : PWideChar) :Cardinal;

implementation

{$R *.dfm}
function GetUserGroups(lpwServer,lpwUser : PWideChar) :Cardinal;
type
   TUserGroupArray = array of GROUP_USERS_INFO_0;
var
   pBuffer : Pointer;
   dwRead, dwTotal, i : Cardinal;
   dwErr : integer;
   UserGroupArray : array [0..100] of GROUP_USERS_INFO_0;
begin
   pBuffer:=@UserGroupArray;
   dwRead:=0;
   ZeroMemory(pBuffer,SizeOf(UserGroupArray));
// здесь навести порядок!!!
//   надо использовать NetApiBufferAlloc
//Pointer to the buffer in which the data set with the level parameter is stored.
//The buffer passed in must have been previously allocated with NetApiBufferAlloc.
// The returned buffer should be deallocated using the NetApiBufferFree function.
   @NetUserGetGroup := nil;
   LibHandle:=LoadLibrary("NETAPI32.DLL");

 if LibHandle = 0 then
    begin
// Обработать ошибку и выйти
     end
  else
  begin
       @NetUserGetGroup:=GetProcAddress(LibHandle,"NetUserGetGroups");
       if @NetUserGetGroup <> nil then
       begin
           Result:=NetUserGetGroup(lpwServer,lpwUser,0,pBuffer,255,dwRead,dwTotal);
           if Result = 0 then
           for i:=0 to dwRead-1 do
//ну, это уж совсем не кошерно -)
               Form1.ListBox1.Items.Add(WideCharToString(TUserGroupArray(pBuffer^)[i].grui0_name));
       end;
   end;
//    NetApiBufferFree(pBuffer); - здесь навести порядок
   FreeLibrary(LibHandle);
end;
//Пример использования
procedure TForm1.Button1Click(Sender: TObject);
var s,u: widestring;
   Err: cardinal;
begin
   s:=WideString("Server");
   u:=WideString("User");
   Err:=GetUserGroups(@s[1],@u[1]);
   .....
end;

end.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.035 c
1-1109084226
Vyacheslav
2005-02-22 17:57
2005.03.06
Имя Закладки в Excel


1-1108541537
Neznaika
2005-02-16 11:12
2005.03.06
StayOnTop


4-1106386502
Lucifer
2005-01-22 12:35
2005.03.06
RegisterHotKey


1-1109016964
Vasek
2005-02-21 23:16
2005.03.06
Странное поведение ActionMainMenuBar


1-1108027284
eropkin
2005-02-10 12:21
2005.03.06
Порекомендуйте учебник по Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский