枚举系统用户,可添加、删除用户(Delphi源码)
http://download.csdn.net/detail/aqtata/6564821获取当前Windows用户的登录密码(C++源码)
http://download.csdn.net/detail/aqtata/6564825

解决方案 »

  1.   


    //获取当前Windows用户名称
    function GetWindowsCurrentUserName : String;
    var
      dwSize : DWORD;
    begin
      dwSize := MAX_PATH;
      SetLength(Result , dwSize);
      if Windows.GetUserName(PChar(Result) , dwSize) then
        System.Delete(Result , dwSize , MAX_PATH)
      else Result := '';
    end;//测试Windows的用户名和密码是否正确,sDoMain域登陆,不是用空就行了
    function CheckWindowsUser(Const sUser , sPassword , sDoMain : String) : Boolean;
    var
      hToken : THandle;
    begin
      if (not Windows.LogonUser(PChar(sUser) , PChar(sDoMain) ,
                                PChar(sPassword) ,
                                LOGON32_LOGON_INTERACTIVE,
                                LOGON32_PROVIDER_DEFAULT , hToken)) or
                                (hToken=0) then Result := False
      else begin
        CloseHandle(hToken);
        Result := True;
      end;
    end;
      

  2.   

    谢谢。
    能帮忙将这个C++代码转成Delphi的吗?不会C++
    或者只要判断是否有密码也行,谢谢
      

  3.   

    谢谢。
    能帮忙将这个C++代码转成Delphi的吗?不会C++
    或者只要判断是否有密码也行,谢谢这是体力活,无非就是些函数声明,结构声明等。
    而且这个是和系统架构相关的,可能不适合你的程序,因为x86的程序不支持在x64系统下获取,反之一样。
      

  4.   

    研究一下这两个函数
    NetUserChangePassWord
    LogonUser
      

  5.   


    这段代码里的CheckWindowsUser方法,用的就是LogonUser了。
    但我不论是xp里还是win7里,不论是否管理员,不论是否设置了密码,执行的结果都是False
    所以这个也判断不了是否设置了密码啊
      

  6.   

    看网上有说用mpr.dll,调用其中的WNetEnumCachedPasswords方法,但我只要执行就报错:
    无法定位程序输入点