hur.cn - 华软网

 热门搜索

xp系统下使用ExitWindowsEx能够注销、重启,但就是关不了机?

  作者:未知    来源:网络    更新时间:2011/6/12
xp系统下使用ExitWindowsEx能够注销、重启,但就是关不了机?
请求高手帮忙啊?万分感谢啊~
HANDLE hToken; 
TOKEN_PRIVILEGES tkp; 
BOOL fResult; 
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))     MessageBox(hwnd,TEXT("OpenProcessToken failed."),TEXT("注意"),MB_OK);
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; 
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES) NULL, 0);

         case IDC_CLOSE://立即关闭计算机
    {
ExitWindowsEx(EWX_SHUTDOWN,0);
     }
break;
        ExitWindowsEx(EWX_SHUTDOWN,0);换成ExitWindowsEx(EWX_SHUTDOWN|EWX_POWEROFF,0);都试过,但就是关不了 机……

---华软 网友回答---
C++">ExitWindowsEx(EWX_SHUTDOWN+EWX_POWEROFF, 0xFFFFFFFF)

试下这样.
---华软网友回复---
http://zhidao.baidu.com/question/60758714.html
---华软网友回复---
to  zwfgdlc
这个我刚试了,但还是不行啊~
---华软网友回复---
 
 to     heksn
 
        (佳宁) 
我照你说的去做了,但是只能关掉我正在运行的VC开发界面啊,其他的程序照常运行,更不用说关机了
跟ExitWindowsEx(EWX_SHUTDOWN,0);运行结果一样
~
---华软网友回复---
C++">ExitWindowsEx(EWX_SHUTDOWN+EWX_POWEROFF, 0xFFFFFFFF);

本机测试通过,看下返回的错误码是什么。
C++">
TCHAR s[256] = {0};
ExitWindowsEx(EWX_SHUTDOWN+EWX_POWEROFF, 0xFFFFFFFF);

if (!ExitWindowsEx(EWX_SHUTDOWN+EWX_POWEROFF, 0xFFFFFFFF))
{
_stprintf_s(s, _countof(s), TEXT("错误代码:%d"), GetLastError());
MessageBox(NULL, s, s, MB_OK);
}

---华软网友回复---
看一下执行的返回码,然后采取措施
---华软网友回复---
以前写过关机程序 之前也是管不了机,添加参数 EWX_FORCE 就行了
ExitWindowsEx(EWX_POWEROFF | EWX_FORCE, 0)
---华软网友回复---
 To           ji1bing
 
             (ji1bing) 

 谢谢你啊,我刚按你的方法试了,可以关机了~同时也谢谢各位朋友的帮助~      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。