如何在对话框中实现注销功能? 一个基于对话框的MFC数据库应用程序,包括一个主界面,点击该主界面上的退出系统按钮进入退出系统对话框,该对话框有两个单选按钮: “退出系统“和“注销并以其他用户登陆“请问:如何实现后者--注销并以其他用户登陆? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是操作系统吗要是操作系统就ExitWindowEx(nFlag,reserve)nFlag:EWX_LOGOFF EWX_PWEROFF EWX_REBOOT EWX_SHUTDOWN void CShutDlg::OnRestart() { OSVERSIONINFO OsVersionInfo; OsVersionInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); GetVersionEx(&OsVersionInfo); if( OsVersionInfo.dwPlatformId==VER_PLATFORM_WIN32_NT) { DWORD dwReserved; ExitWindowsEx(EWX_LOGOFF,dwReserved); }}void CShutDlg::OnShutdown(){ OSVERSIONINFO OsVersionInfo; OsVersionInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); GetVersionEx(&OsVersionInfo); if( OsVersionInfo.dwPlatformId==VER_PLATFORM_WIN32_NT) { TOKEN_PRIVILEGES tkp,tkpnewbutignored; HANDLE hdltokenhandle; BOOL rc; LUID tmpluid; DWORD lbufferneeded; HANDLE hdlprocesshandle = GetCurrentProcess(); rc = OpenProcessToken(hdlprocesshandle,TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hdltokenhandle); rc = LookupPrivilegeValue("","SeShutdownPrivilege", &tmpluid); tkp.PrivilegeCount = 1; // one privilege to set tkp.Privileges[0].Luid = tmpluid; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; rc = AdjustTokenPrivileges(hdltokenhandle,FALSE,&tkp,sizeof(tkpnewbutignored),&tkpnewbutignored, &lbufferneeded); ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE, 0); } else { ExitWindowsEx(EWX_SHUTDOWN,0); }} 高手入:CFile操作不报错,却不成功? 如何将时间保存入数据库中 下面的程序为什么回车后不换行? 关于实时监控数据库~ 问个简单问题 请问怎么判断Client端是lowid还是highid 包含<fstream>与<fstream.h>执行结果不一样,纳闷!谁能告诉我原因? 能否直接从文件取得图象句柄? 多谢duwenyong的源代码,请进来拿分!! [在线等]单文档拆分的问题! 关于spin控件的小问题 vc写程序得时候没有了上下文帮助了
要是操作系统
就
ExitWindowEx(nFlag,reserve)
nFlag:EWX_LOGOFF
EWX_PWEROFF
EWX_REBOOT
EWX_SHUTDOWN
{
OSVERSIONINFO OsVersionInfo;
OsVersionInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
GetVersionEx(&OsVersionInfo);
if( OsVersionInfo.dwPlatformId==VER_PLATFORM_WIN32_NT)
{
DWORD dwReserved;
ExitWindowsEx(EWX_LOGOFF,dwReserved);
}}
void CShutDlg::OnShutdown()
{
OSVERSIONINFO OsVersionInfo;
OsVersionInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
GetVersionEx(&OsVersionInfo);
if( OsVersionInfo.dwPlatformId==VER_PLATFORM_WIN32_NT)
{
TOKEN_PRIVILEGES tkp,tkpnewbutignored;
HANDLE hdltokenhandle;
BOOL rc;
LUID tmpluid;
DWORD lbufferneeded;
HANDLE hdlprocesshandle = GetCurrentProcess();
rc = OpenProcessToken(hdlprocesshandle,TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hdltokenhandle);
rc = LookupPrivilegeValue("","SeShutdownPrivilege", &tmpluid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Luid = tmpluid;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
rc = AdjustTokenPrivileges(hdltokenhandle,FALSE,&tkp,sizeof(tkpnewbutignored),&tkpnewbutignored, &lbufferneeded);
ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE, 0);
}
else
{
ExitWindowsEx(EWX_SHUTDOWN,0);
}
}