• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

在C++ Builder程序中控制Windows关机

发布: 2007-7-04 20:47 | 作者: admin | 来源:  网友评论 | 查看: 15次 | 进入软件测试论坛讨论

领测软件测试网 许锦新

  我们在应用程序编制完成后,需要设计应用程序的包装和分发功能。在编写安装程序时,经常会遇到这样的问题:程序安装完成后需要重新启动计算机。那么在代码中如何控制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);

  }

表1

设置值

简要意义

ewx_force

强制终止程序运行而退出系统

ewx_logoff

退出而以其它身份登录

ewx_reboot

重新启动

ewx_shutdown

关机


  5.运行程序后,分别单击四个按钮测试它们的功能。如果能完成各种设置的功能,说明你已成功了,那么就可以将本文介绍的方法运用到自己开发的C++ Builder应用程序中去控制Windows的关闭了。

  本程序在中文Windows 98、C++ Builder 5.0环境下运行通过。   

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网