⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sysfunctions.pas

📁 利用win2k 的API获取系统用户
💻 PAS
字号:
unit SysFunctions;

interface
uses
  windows,Classes;

type USER_INFO_1 = record
  usri1_name: LPWSTR;
  usri1_password: LPWSTR;
  usri1_password_age: DWORD;
  usri1_priv: DWORD;
  usri1_home_dir: LPWSTR;
  usri1_comment: LPWSTR;
  usri1_flags: DWORD;
  usri1_script_path: LPWSTR;
end;

lpUSER_INFO_1 = ^USER_INFO_1;

function NetUserEnum(ServerName: PWideChar;
  Level,
  Filter: DWord;
  var Buffer: Pointer;
  PrefMaxLen: DWord;
  var EntriesRead,
  TotalEntries,
  ResumeHandle: DWord): LongWord; stdcall; external 'netapi32.dll';

function NetApiBufferFree(pBuffer: PByte): LongInt; stdcall; external 'netapi32.dll';

function getSysUser(var TStrsUsers:TStringList):integer;

implementation

//------------------------------------------------------------------------------
// function getSysUser ;
// 得到NT系统用户,API。TStrsUsers:TStringList ; 返回值 内容为 "用户名=用户简介"
//------------------------------------------------------------------------------
function getSysUser(var TStrsUsers:TStringList):integer;
var
  EntiesRead: DWORD;
  TotalEntries: DWORD;
  UserInfo: lpUSER_INFO_1;
  lpBuffer: Pointer;
  ResumeHandle: DWord;
  Counter: Integer;
  NetApiStatus: LongWord;
begin
  if not Assigned(TStrsUsers) then
  begin
    Result:=-1;
    Exit;
  end;
  ResumeHandle := 0;
  repeat
  // NetApiStatus := NetUserEnum(PChar('\\NT-Domain'), 1, 0, lpBuffer, 0,EntiesRead, TotalEntries, ResumeHandle);
  NetApiStatus := NetUserEnum(nil, 1, 0, lpBuffer, 0, EntiesRead,
  TotalEntries, ResumeHandle);
  UserInfo := lpBuffer;
  for Counter := 0 to EntiesRead - 1 do
  begin
    TStrsUsers.add(WideCharToString(UserInfo^.usri1_name) + '=' +
    WideCharToString(UserInfo^.usri1_comment));
    Inc(UserInfo);
  end;
  NetApiBufferFree(lpBuffer);
  until (NetApiStatus <> ERROR_MORE_DATA);

  Result:=0;
end;


end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -