hur.cn - 华软网

 热门搜索

关闭系统

  作者:未知    来源:网络    更新时间:2011/9/26
各位大哥当我点击一个按钮时执行
ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE,0);//   关机
来关闭系统,怎么不起作用啊,有时会让我的编译器关闭.使用的编译器是vs2010
---华软 网友回答---
ExitWindowsEx (EWX_POWEROFF,0);
试试这个那
---华软网友回复---
权限问题吧。MSDN上有个例子代码
C++">
BOOL MySystemShutdown()
{
   HANDLE hToken; 
   TOKEN_PRIVILEGES tkp; 
 
   // Get a token for this process. 
 
   if (!OpenProcessToken(GetCurrentProcess(), 
        TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) 
      return( FALSE ); 
 
   // Get the LUID for the shutdown privilege. 
 
   LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, 
        &tkp.Privileges[0].Luid); 
 
   tkp.PrivilegeCount = 1;  // one privilege to set    
   tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
 
   // Get the shutdown privilege for this process. 
 
   AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, 
        (PTOKEN_PRIVILEGES)NULL, 0); 
 
   if (GetLastError() != ERROR_SUCCESS) 
      return FALSE; 
 
   // Shut down the system and force all applications to close. 
 
   if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 
               SHTDN_REASON_MAJOR_OPERATINGSYSTEM |
               SHTDN_REASON_MINOR_UPGRADE |
               SHTDN_REASON_FLAG_PLANNED)) 
      return FALSE; 

   return TRUE;
}


---华软网友回复---
貌似需要提权的..
---华软网友回复---
HWND hWindow;
hWindow=FindWindow(TEXT("program"),NULL);
SendMessage(hWindow,WM_CLOSE,0,0);
这里是这样的,先得到explorer(也就是操作系统的主窗口)句柄,然后给它发送WM_CLOSE消息.就会触发关机命令.但要你点确定才行.
你研究下这个消息的参数.应该可以直接关的.
如果是控制台应用程序 system("shutdown -t 1");
---华软网友回复---
关机调用
system("shutdown -s -t 0");
就可以了
---华软网友回复---
权限问题,先提权
---华软网友回复---
在编译器环境下运行程序会成功,运行编译后的exe文件不能成功,那估计是你进城的权限问题了。
---华软网友回复---
分数只有这么多,哈哈就每人意思一下好了,使用的二楼的搞定了。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。