请问NetUserAdd是在哪个单元文件里面声明的?
lm.h被解释到了哪个单元?
lm.h被解释到了哪个单元?
解决方案 »
- 本人所遇报表设计超强问题,求助
- SpreadSheet如何实现类似Excell的冻结窗格的功能(即:固定行跟列...)
- 谁有用DELPHI2005 的ASP.NET的例子
- delphi 的string如何转换成vc 或 vb的string?(在线等待)
- SQL SERVER 数据库备份后成一个文件,请问怎么样可以对此文件加密呢?
- 那个有用ado+access做的简单程序,发过来一个学习学习!
- 送分:ADOConnection 连接数据库的问题
- ---------------关于调用VC写的COM的问题(UP有分)---------------
- 怪!调用DeleteFile()为什么不能删除文件!??还有比DeleteFile更加安全的文件粉碎机吗?
- 一个很菜的问题
- 送分问题,如何写文本文件?
- 怎么样才能把CheckListBox里面Check到的值取出来啊?
// 2002-09
// ahpei
interface
uses
windows,Classes,SysUtils;
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;
Buffer=^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 NetUserChangePassword(dominname:PWideChar;username:PwideChar;oldpassword:PwideChar;newPassword:PWideChar):LongWord;stdcall;external 'netapi32.dll';
//增加用户函数
function NetUserAdd(Server:PWideChar;Level:DWORD;Buf:buffer;ParmError:PChar):LongInt;stdcall; external 'netapi32.dll'
//删除用户函数
function NetUserDel(servername:Pwidechar;username:pwidechar):LongWord;stdcall;external 'netapi32.dll';
//取得用户信息
function NetUserGetInfo(servername:PWideChar;username:PwideChar;level:Dword;var Buffer:Pointer):LongWord;stdcall;external 'netapi32.dll';type
TNetApi32=class
private public //读取所有用户
function GetAllUser(var UserList:TstringList):integer;
//改变密码
function ChangePassword(dominname:string;username:string;oldpassword:string;newpassword:string):integer;
//增加帐号
function AddAccount(Name,Password:Pwidechar):Boolean;
//删除帐号
function DeleteUser(servername:pwidechar;username:pwidechar):Boolean;end;
implementationuses
Dialogs;{ TNetApi32 }
function TNetApi32.AddAccount(Name, Password: Pwidechar): Boolean;
var
Buf:lpUSER_INFO_1;
error:Pchar;
begin
GetMem(Buf,sizeof(USER_INFO_1));
with Buf^ do
begin //与此结构相对应的是USER_INFO_1
usri1_name:=name;
usri1_password:=password;
usri1_password_age:=0;
usri1_priv:=1;
usri1_home_dir:=nil;
usri1_comment:=nil;
usri1_flags:=1;
usri1_script_path:=nil;
end; // with
showMessage(IntToStr(netUserAdd(nil,1,Pointer(buf),nil)));
freeMem(buf);
end;function TNetApi32.ChangePassword(dominname, username, oldpassword,
newpassword: string):integer;
var
I: Integer;
NetApiStatus:integer;
user,old,new:pwidechar;
begin
GetMem(user,50);
GetMem(old,50);
GetMem(new,50);
StringToWideChar(username,user,Length(username)+1);
StringToWideChar(oldpassword,old,length(oldPassword)+1);
StringToWideChar(newpassword,new,Length(NewPassword)+1); netApistatus:=NetUserChangePassword(nil,user,old,new);
Result:=NetApiStatus;
FreeMem(user);
FreeMem(old);
FreeMem(New);
end;function TNetApi32.DeleteUser(servername, username: pwidechar): Boolean;
begin
NetUserDel(nil,username);
end;function TNetApi32.GetAllUser(var UserList:TstringList):integer;
var
EntiesRead:DWORD;
TotalEntries:DWORD;
UserInfo:lpUSER_INFO_1;
lpBuffer:Pointer;
ResumeHandle:Dword;
Counter:Integer;
NetApiStatus:LongWord;begin
//UserList:=TstringList.create;
ResumeHandle:=0;
repeat
NetApiStatus:=NetUserEnum(nil,1,0,lpBuffer,0,EntiesRead,TotalEntries,ResumeHandle);
UserInfo:=lpBuffer;
for Counter := 0 to EntiesRead-1 do // Iterate
begin
UserList.Add(WideCharToString(UserInfo^.usri1_name));
end; // for
NetApiBufferFree(lpBuffer);
until (NetApiStatus<>ERROR_MORE_DATA);
Result:=1;end;end.
这个我知道
不过你知不知道这些函数有没有解释到delphi的某个单元??
谢谢
好像delphi里面没有声明
我是刚学的
确实不知道
能说明白点吗?
netuseradd没有在任何单元,要手工增加。
stdcall; external 'netapi32.dll'
还是要用到netapi32.dll
看来这个函数没有被解释到delphi中
谢谢各位了
结贴