[color=#FF0000]请高手帮忙[/color],如何分别"操作系统将要关机还是重启"? 在操作系统要关机的时候会对每个窗口发送WM_QUERYENDSESSION消息,能过其消息参数,只能区分是不是注销,不能分别是要关机还是重启,请Windows高手指条明路! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要想编程使Windows关机、重启或者注销,可以使用ExWindowsEx这个API函数,该函数只有两个参数,第一个表示关机动作的标志,也就是你要让该函数关机呢,还是重启,还是注销等。可以使用EWX_SHUTDOWN、EWX_REBOOT、EWX_LOGOFF等标志常量,分别表示关机、重启、注销。另外如果加上EWX_FORCE这个标志常量的话,该表明强制执行该操作。Windows在执行以上操作的时候会首先给每个正在运行中的程序发送一个WM_QUERYENDSESSION消息,告诉它们现在我要退出系统了,你们赶快保存东西啊!如果这时候其中有某一个程序对该消息回应了“不”,系统就不会再执行以上操作了。而如果指定了EWX_FORCE标志,系统则不会发送消息去询问各个程序了,而是直接强制关闭所有程序,退出系统。所以说当指定了EWX_FORCE标志的时候要小心,因为这样做可能会丢失一些东西。(比如文件可能会没保存)。第二参数是保留参数,可能直接传递0值。另外,当在Win2K以上的操作系统执行关机和重启操作时,需要调用该程序的进程首先获得关机特权,不然函数会调用失败。 很可惜,1楼的对WM_QUERYENDSESSION消息很熟悉,但却没有告诉我,怎么区分是关机和重启,期待高手继续回复 界面刷新问题求助 怎样自绘制系统菜单? 白拿分咯! 请问VC2005如何,初始化ADO 请教: 关于CFile.Open使用问题 怎样把char型转化为CString型 DLL注入进程发送WM_GETTEXT消息,还是取不到密码文本,为什么? 纯虚函数! 类中的成员函数如何做线程函数 学会vc,至少要用多长时间? 请问?delphi中怎样设置windows任务栏的属性为自动隐藏?? 关于使用CSocket发送消息的问题 One or more breakpoints cannot be set and have been disabled.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货