如何拦截关机信息?
下面列出一种方法,来自论坛搜索。但这种方法其实没太大用处,因为这个只是系统关机前对有窗口的应用程序的一个通知,等待应用程序返回未就绪的标志,然后不关机。以防止如word未保存文件强制关机引起的内容丢失。并且当AU3收到这个消息时,绝大多数其它程序已经被结束了。所以,有没有更好的办法来在第一时间拦截关机呢(其它程序也不会被结束)?$WM_QUERYENDSESSION = 0x0011
GUIRegisterMsg($WM_QUERYENDSESSION, "Cancel")
GUICreate("")
GUISetSTate(@SW_HIDE)
Global $Esc = 0
While 1
If $Esc = 1 then
MsgBox (0, "", "想干什么!按确定后继续截获")
$Esc = 0
EndIf
sleep(10)
WEnd
Func Cancel($hWndGUI, $MsgID, $WParam, $LParam)
$Esc = 1
Return False
EndFunc复制代码 据说用HOOK可以,但从未见过 回复 1# 黑菜
提高程序关机的优先级试试~ 挂钩User32.ExitWindowsEx函数。
参考:跨进程API Hook UDF - RTApiHook32.au3 ............................... 本帖最后由 黑菜 于 2011-1-5 09:57 编辑
挂钩User32.ExitWindowsEx函数。
参考:
pusofalse 发表于 2011-1-4 19:56 http://www.autoitx.com/images/common/back.gif
好牛叉的代码,看得我晕乎乎的。
P版很强大,有没有简单点的代码啊。 又见P版来,注释很详细
页:
[1]