- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
定时关机程序
一、问题的提出:运行某任务的计算机,尤其是服务器,如果能实现在无人职守的情况下,到达指定时间时自动关机,那么将极大地减轻系统管理员的负担,也会给我们的日常工作带来很大方便。 笔者用Delphi开发的这个定时自动关机程序,适用于目前两类的Windows系列操作系统:从Windows 95/98/Me到Windows NT/2000/XP。 二、程序的功能有: 1.用户自己设定关机时间,通过自定义函数IsValidTime()判断用户输入的时间是否有效。 2.定时强制自动关机:对于windows 95/98/Me,直接调用API函数ExitWindowsEx()关机。对于NT/2000/XP,需要取得计算机名,获得关机特权后,才能关机:首先调用OpenProcessToken()函数得到存取令牌的句柄,然后调用AdjustTokenPrivileges()函数来使能该特权。Win32API定义了一组字符串常量来标识不同的特权,如关机特权是 ’SeShutdownPrivilege’。 3.到达设定的关机时间时,延时30秒,以便用户保存文件,或取消关机。两类操作系统都显示倒记时,对于windows 95/98/Me,只通过程序界面显示;对于NT/2000/XP,将调用系统的倒记时界面显示。 4.为了不占用任务栏的空间,程序显示在托盘中。右键单击托盘中的图标,将显示快捷菜单。 5.如果未到设定的关机时间,系统要关闭,该程序能截获关机消息,由用户选择是否关机。原理是:当用户关闭Windows时,系统会发送给各应用程序一个消息wm_queryendsession,告诉各应用程序要关机了,如果反馈回来的消息值为0,就不能关机。因此,截获wm_queryendsession,并反馈回0,就大功告成了。 6.在内存中只运行本程序的一个实例。原理是:利用Windows 的全局原子表信息来实现此功能。Windows 的全局原子表可以被当前所有应用程序访问,它一共可包含37 项内容。程序运行时,首先检查在表中有无本程序的信息,如有,则提示后退出。如没有,则在表中增加该程序的信息。程序最后退出时要从表中移走信息以便程序能再运行。 四、源程序:
unit AutoShut1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Menus,AppEvnts,shellapi; type TForm1 = class(TForm) Timer1: TTimer; Timer2: TTimer; ApplicationEvents1: TApplicationEvents; PopupMenu1: TPopupMenu; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Btn_OK: TButton; Btn_Abort: TButton; procedure Timer1Timer(Sender: TObject); procedure TrayMenu(Var Msg:TMessage); message WM_USER; procedure TimeSetClick(Sender: TObject); procedure ExitClick(Sender: TObject); procedure Btn_OKClick(Sender: TObject); procedure Btn_AbortClick(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure Edit2KeyPress(Sender: TObject; var Key: Char); procedure WMQueryEndSession (var Msg : TWMQueryEndSession); message WM_QueryEndSession; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanC
您可能关注的文档
- Thinkpad T400 BIOS 设置选项详解.doc
- The Internet and Telecommunications教案.doc
- The path that the proprietor of an enterprise puts in- The channel below digital sale trend chooses.doc
- tdk影评.doc
- stm32基于定时器计量外部脉冲的实现.doc
- TFE材料特性.doc
- TA7376组成的耳机放大电路.doc
- STM32高级定时器日记之PWM.doc
- TTL电平信号被利用的最多是因为通常数据表示采用二进制规定.doc
- think联想笔记本驱动.doc
最近下载
- 小升初语文阅读考点 专题五 写人记事类文章阅读指导 专练卷(含答案)人教统编版.doc VIP
- TCSAE-功能型无人车 自动驾驶功能场地试验方法及要求.pdf VIP
- 机械制图与CAD基础习题集第2版包玉梅习题答案.pdf
- FZ_T07037-2024《纺织企业水重复利用率计算方法》.pdf VIP
- 《企业财务会计习题与实训(第5版)》课后参考答案1-4章程运木.doc
- 人才素质盘点方案.pptx VIP
- 2023天健校招笔试题型.pdf VIP
- 必修下教材文言文逐篇过关挖空训练(二)(解析版)-2026年高考语文一轮复习之古诗文(全国通用).pdf VIP
- 必修下教材文言文逐篇过关挖空训练(一)(解析版)-2026年高考语文一轮复习之古诗文(全国通用).pdf VIP
- 天健笔试押题校招.pdf VIP
文档评论(0)