Телефон: +7 (926) 245-03-63

Список пользователей в Windows NT/2000

Следующая статья: Отображение логотипа при запуске приложения.

Решение

 unit Func; 
interface 
uses SysUtils, Classes, StdCtrls, ComCtrls, Graphics, Windows; 
{$EXTERNALSYM NetUserEnum} 
function NetUserEnum(servername: LPWSTR; level, filter: DWORD; bufptr: Pointer; prefmaxlen: 
DWORD; entriesread, totalentries, resume_handle: LPDWORD): DWORD; stdcall; 
external'NetApi32.dll' Name'NetUserEnum'; 
function NetApiBufferFree(Buffer: Pointer{LPVOID}): DWORD; stdcall; 
external'NetApi32.dll' Name'NetApiBufferFree'; 
procedure GetLocalUserList(ulist: TStringList); 
implementation
// возвращает список пользователей локального хоста 
procedure GetLocalUserList(ulist: TStringList); 
const NERR_SUCCESS=0; FILTER_TEMP_DUPLICATE_ACCOUNT=$0001; 
FILTER_NORMAL_ACCOUNT=$0002; FILTER_PROXY_ACCOUNT=$0004; 
FILTER_INTERDOMAIN_TRUST_ACCOUNT=$0008; 
FILTER_WORKSTATION_TRUST_ACCOUNT=$0010; 
FILTER_SERVER_TRUST_ACCOUNT=$0020; 
type TUSER_INFO_10=record usri10_name, usri10_comment, usri10_usr_comment, usri10_full_name: PWideChar; 
end; 
PUSER_INFO_10=^TUSER_INFO_10; var dwERead, dwETotal, dwRes, res: DWORD; inf: PUSER_INFO_10; info: Pointer; p: PChar; i: Integer; 
begin if ulist=nil then Exit; ulist.Clear; info:=nil; dwRes:=0; 
res:=NetUserEnum(nil, 10, FILTER_NORMAL_ACCOUNT, @info, 65536, @dwERead, @dwETotal, @dwRes); 
if (res<>NERR_SUCCESS) or (info=nil) then Exit; p:=PChar(info); 
for i:=0 to dwERead - 1 do 
begin inf:=PUSER_INFO_10(p+i * SizeOf(TUSER_INFO_10)); 
ulist.Add(WideCharToString(PWideChar((inf^).usri10_name))); 
end; NetApiBufferFree(info); 
end;
 end.
Интересное в интернете: кайтинг, бордшорты.