请问NetUserAdd是在哪个单元文件里面声明的?
lm.h被解释到了哪个单元?

解决方案 »

  1.   

    代码如下,是我以前做的一个工程稍微使用到的,至于...就不说了!
    // 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.
      

  2.   

    呵呵
    这个我知道
    不过你知不知道这些函数有没有解释到delphi的某个单元??
    谢谢
      

  3.   

    直接用netapi32.dll吧
    好像delphi里面没有声明
      

  4.   

    sorry
    我是刚学的
    确实不知道
    能说明白点吗?
      

  5.   

    按下Ctrl键,然后用鼠标点击NetUserEnum就可以知道NetUserEnum来自哪里了。
      

  6.   

    按ctrl,你还没有uses那个单元,按ctrl也没用的。
    netuseradd没有在任何单元,要手工增加。
      

  7.   

    function NetUserAdd(Server:PWideChar;Level:DWORD;Buf:buffer;ParmError:PChar):LongInt;
       stdcall; external 'netapi32.dll'
      

  8.   

    hehe
    还是要用到netapi32.dll
    看来这个函数没有被解释到delphi中
    谢谢各位了
    结贴