要实现这个功能,需要用到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);
}
表1配置值简要意义
EWX_FORCE强制终止程式运行而退出系统
EWX_LOGOFF退出而以其他身份登录
EWX_REBOOT重新启动
EWX_SHUTDOWN关机
5.运行程式后,分别单击四个按钮测试他们的功能。假如能完成各种配置的功能,说明您已成功了,那么就能够将本文介绍的方法运用到自己研发的C Builder应用程式中去控制Windows的关闭了。




