在C++中控制Windows关机

资讯 驱动中国 sevenleaf 2,487 次阅读 0 条评论
分享 Q

      我们在应用程序编制完成后,需要设计应用程序的包装和分发功能。在编写安装程序时,经常会遇到这样的问题:程序安装完成后需要重新启动计算机。那么在代码中如何控制Windows的关机或重新启动呢? 
      要实现这个功能,需要用到Windows API提供的一个ExitWindowsEx函数。我们可以通过查看C++ Builder提供的帮助文件得到这个函数的使用格式: 
      BOOL ExitWindowsEx( 
      UINT uFlags, 
      // 设置关机参数 
      DWORD dwReserved 
      // 系统保留字 
       ); 
      其中uFlags的主要设置值及意义见表1。 
      dwReserved是系统保留字,随便填入个0即可。 
      了解ExitWindowsEx函数的使用格式后,下面以实例说明在C++ Builder中控制Windows关机或重新启动的方法。 
      设计步骤如下: 
      1.运行C++ Builder系统后,先激活选单“File/New Application”,创建一个新工程。 
      2.激活选单“File/Save As”把窗体单元以文件名exitu.cpp存盘,然后激活选单“File/Save Project As”把工程文件以文件名exitp.bpr存盘。(注意:工程文件名与窗体单元文件名不要同名。) 
      3.在窗体上增加四个TButton组件Button1、Button2、Button3和Button4,分别设置它们的Caption属性为“其它身份登录”、“关机”、“重新启动”和“强制关机”。 
      4.分别设置Button1、Button2、Button3和Button4组件的OnClick事件响应代码如下: 
      void __fastcall TForm1::Button1Click(TObject ?Sender) 
      { 
      //其它身份登录 
      DWORD temp; 
      ExitWindowsEx(EWX_LOGOFF,temp); 
      } 
      //------------------------------ 
      void __fastcall TForm1::Button2Click(TObject ?Sender) 
      { 
      //关机 
      DWORD temp; 
      ExitWindowsEx(EWX_SHUTDOWN,temp); 
      } 
      //------------------------------ 
      void __fastcall TForm1::Button3Click(TObject ?Sender) 
      { 
      //重新启动 
      DWORD temp; 
      ExitWindowsEx(EWX_REBOOT,temp); 
      } 
      //------------------------------ 
      void __fastcall TForm1::Button4Click(TObject ?Sender) 
      { 
      //强制关机 
      DWORD temp; 
      ExitWindowsEx(EWX_FORCE,temp); 
      } 
      设置参数说明: 
      设置值简要意义 
      EWX_FORCE强制终止程序运行而退出系统 
      EWX_LOGOFF退出而以其它身份登录 
      EWX_REBOOT重新启动 
      EWX_SHUTDOWN关机 
      5.运行程序后,分别单击四个按钮测试它们的功能。如果能完成各种设置的功能,说明你已成功了,那么就可以将本文介绍的方法运用到自己开发的C++ Builder应用程序中去控制Windows的关闭了。

版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系 editor@qudong.com
本文价值 成为第一个评分的人
登录后为本文打分
网友评论0 条评论
正在回复 的评论取消
评论加载中…
🔐

登录后参与互动

评论、点赞均可赚积分
连续签到、邀请好友也有奖励 🎁

电脑端: 微信扫码登录 微信内: 一键登录

微信扫一扫

打开微信「扫一扫」,分享本文到朋友圈或好友