职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 904|回复: 0

C++中控制Windows关机的实用技巧

[复制链接]
云儿飘飘 发表于 2007-7-8 11:03 | 显示全部楼层 |阅读模式
我们在应用程序编制完成后,需要设计应用程序的包装和分发功能。在编写安装程序时,经常会遇到这样的问题:程序安装完成后需要重新启动计算机。那么在代码中如何控制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的关闭了。
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-3 07:32 , Processed in 0.128590 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表