Delphi 增加/获得windows用户帐号


本文整理自网络,侵删。

 
unit Unit1;

interface

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

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';

type
TForm1 = class(TForm)
Button1: TButton;
ListView1: TListView;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);


private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
//添加用户
function NetUserAdd(Server: PWideChar; Level: DWORD; Buf: pointer; ParmError: dword): LongInt;
stdcall; external 'netapi32.dll';
//删除用户
function NetUserDel(Server:PWideChar;username:pwidechar):LongInt;stdcall; external
'netapi32.dll';
procedure TForm1.Button1Click(Sender: TObject);
var
EntiesRead: DWORD;
TotalEntries: DWORD;
UserInfo: lpUSER_INFO_1;
lpBuffer: pointer;
ResumeHandle: DWord;
Counter: Integer;
NetApiStatus: LongWord;
TempListItem: TListItem;
begin

//增加用户

// getmem(UserInfo, sizeof(USER_INFO_1));
//
// with UserInfo^ do
// begin
// usri1_name := 'Gao168';
// usri1_password := '610110';
// usri1_password_age := 0;
// usri1_priv := 1;
// usri1_home_dir := nil;
// usri1_comment := nil;
// usri1_flags := 1;
// usri1_script_path := nil;
// end;
//
// NetApiStatus := NetUserAdd(nil, 1, pointer(UserInfo), 0);
// freemem(UserInfo);

//获得用户

self.ListView1.Items.Clear;
ResumeHandle := 0;
repeat
NetApiStatus := NetUserEnum(nil, 1, 0, lpBuffer, 0, EntiesRead,
TotalEntries, ResumeHandle);
UserInfo := lpBuffer;
for Counter := 0 to EntiesRead - 1 do
begin
TempListItem := self.ListView1.Items.Add;
TempListItem.Caption := WideCharToString(UserInfo^.usri1_name);
TempListItem.SubItems.Add(WideCharToString(UserInfo^.usri1_comment));
Inc(UserInfo);
end;
NetApiBufferFree(lpBuffer);
until (NetApiStatus <> ERROR_MORE_DATA);
end;

https://www.cnblogs.com/windson/p/12504378.html

相关阅读 >>

Delphi之木马生成原理(资源文件,和文件流的应用)

Delphi idhttp1 xmlpost

Delphi中如何控制webbrowser滚动条

Delphi 如何检测你的电脑日期或时间的变化

processid, process handle, window handle 之间的互相转换

Delphi服务器端如何防止ddos

Delphi 输出用空格对齐字符串的函数

Delphi vista和win7下如何弹出uac

Delphi 延时的4种方法

Delphi 7zip 示例调用7z.dll 压缩及解压.7z文件

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...