我写了一个mfc程序,功能是在文本框中输入一个系统的用户名,点击按钮实现设置用户属性,包括用户密码永不过期和用户可以更改密码两项。 下面是按钮的消息处理函数
void CnetusersetinfoDlg::OnBnClickedInfo()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);//将文本框上的账号传给与文本框相关的变量
DWORD dwLevel = 2;
LPUSER_INFO_2 ui = NULL;
LPCWSTR servername = NULL;//查看本主机
LPCWSTR user =(LPCWSTR) m_strACCOUNTNAME.GetBuffer();//将CString类型转换为LPCWSTR类型
NET_API_STATUS nStatus;
ui->usri2_flags=UF_DONT_EXPIRE_PASSWD;//设置用户密码永不过期
nStatus = NetUserSetInfo(servername,
user,
dwLevel,
(LPBYTE)&ui,
NULL);
if (nStatus == NERR_Success)
fwprintf(stderr, L"User account %s has been disabled\n", user);
else
fprintf(stderr, "A system error has occurred: %d\n", nStatus);
m_strACCOUNTNAME.ReleaseBuffer();
if (ui != NULL)
NetApiBufferFree(ui);
}
程序编译都能通过,在release和debug下都能生成,运行release版本的exe,点击按钮后没有反应,也无法修改用户属性;运行debug版本的exe,出现错误,贴图如下

点击忽略后
