LogonUser()是用来判断用户登录Windows操作系统的。但是,当密码为空的时候,LogonUser会返回FALSE。
经过研究,发现如果密码为空的时候,GetLastError会返回1327错误,也就是说,Windows不允许LogonUser以空的密码来登录。
所以,登录的代码需要更新一下:
if (LogonUser(account.strUsername, account.strDomain, account.strPassword,
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hUser))
{
}
应该改为
if (LogonUser(account.strUsername, account.strDomain, account.strPassword,
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hUser)
|| GetLastError() == 1327)
{
}
这样,LogonUser应该就没问题了。