C++中控制Windows关机的实用技巧
来源:互联网 发布:python 变量声明 编辑:程序博客网 时间:2024/05/14 08:51
我们在应用程序编制完成后,需要设计应用程序的包装和分发功能。在编写安装程序时,经常会遇到这样的问题:程序安装完成后需要重新启动计算机。那么在代码中如何控制Windows的关机或重新启动呢?
要实现这个功能,需要用到Windows API提供的一个ExitWindowsEx函数。我们可以通过查看C++ Builder提供的帮助文件得到这个函数的使用格式:
BOOL ExitWindowsEx(
UINT uFlags,
// 设置关机参数
DWORD dwReserved
// 系统保留字
);
设置uFlags的参数说明:
EWX_FORCE 强制终止程序运行而退出系统
EWX_LOGOFF 退出而以其它身份登录
EWX_REBOOT 重新启动
EWX_SHUTDOWN 关机
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); }
5.运行程序后,分别单击四个按钮测试它们的功能。如果能完成各种设置的功能,说明你已成功了,那么就可以将本文介绍的方法运用到自己开发的C++ Builder应用程序中去控制Windows的关闭了。
- C++中控制Windows关机的实用技巧
- 如何控制Windows的关机或重新启动
- C++控制windows系统关机
- Windows 的关机命令
- Windows的正常关机
- c#调用api控制windows关机示例
- Windows Vista/7中关机、睡眠和休眠的区别
- Windows Vista/7中关机、睡眠和休眠的区别
- windows实用技巧
- C#实现控制Windows系统关机、重启和注销的方法:
- C++, Qt Windows关机的时候,阻止其关机或这注销 做其它业务的解决方法
- C实用技巧
- Windows 关机消息的截获
- Windows XP的定时关机
- Windows 关机消息的截获
- windows 的关机,睡眠,休眠
- Windows XP的20个实用技巧
- Windows自带记事本的实用技巧
- XUL及写Mozilla应用程序的参考书
- [分享]总结:VC小知识! 选择自 SEUU 的 Blog
- 体验FC3的APT包管理──mplayer
- lex & yacc
- Java编程中更新XML文档的常用方法集
- C++中控制Windows关机的实用技巧
- blog 开光仪式!
- 来自smth
- C++经典
- C#轻松解决世纪迷题
- 在 Visual Basic .NET 中创建控件数组
- 不能忘却的怀念
- Getting the IWebBrowser2 interface for each HTML frame
- CVS权限设置