赞...
消息太闭塞了,得口口相传...效率何其低啊...
值得翻译,转载到中文论坛/板块。
嗯,那个OnWin还有不足,貌似是开启多进程模拟监视
外加现在(1.0.03)还没有停止监视的功能...已反馈,说能解决
OnWin的简单翻译见
AHK8帖子。
关于
RegisterShellHookWindow的可运行的演示,展示了可以获取到的消息。
主要是HSHELL_WINDOWACTIVATED,较窄。
Code: Select all
;[url=https://msdn.microsoft.com/en-us/library/ms644989(v=vs.85).aspx]RegisterShellHookWindow function (Windows)[/url]
;[url=https://msdn.microsoft.com/en-us/library/ms644991(v=vs.85).aspx]ShellProc callback function (Windows)[/url]
;[url=http://ahkscript.org/boards/viewtopic.php?f=28&t=9324][HV2] 窗口监视模块 - Hawkeye - AHKScript (an AutoHotkey Forum)[/url]
;[url=https://msdn.microsoft.com/en-us/library/ms644959(v=vs.85).aspx#wh_shellhook]Hooks Overview (Windows)[/url]
DllCall("RegisterShellHookWindow", UInt,A_ScriptHwnd )
OnMessage(DllCall( "RegisterWindowMessage", Str,"SHELLHOOK" ), "ShellHookProc" )
#q::ExitApp
ShellHookProc(wParam, lParam){
static HSHELL:={wParam:消息号,
(LTrim C Join,
1:"WINDOWCREATED"
2:"WINDOWDESTROYED"
3:"ACTIVATESHELLWINDOW"
4:"WINDOWACTIVATED"
5:"GETMINRECT"
6:"REDRAW"
7:"TASKMAN"
8:"LANGUAGE" ;仅ShellProc
9:"SYSMENU"
10:"ENDTASK" ;仅ShellProc
11:"ACCESSIBILITYSTATE" ;仅ShellProc
12:"APPCOMMAND"
13:"WINDOWREPLACED"
14:"WINDOWREPLACING" ;仅RegisterShellHookWindow
32772:"RUDEAPPACTIVATED" ;0x8004. 仅RegisterShellHookWindow
32774:"FLASH" ;0x8006. 仅RegisterShellHookWindow
;MONITORCHANGED:? ;仅RegisterShellHookWindow
;以上消息号自"WinUser.h"
;其中除后四个,其余见"ShellProc callback function (Windows)";后四个见"RegisterShellHookWindow function (Windows)"
)}
static History:={}
History.InsertAt(1,wParam,lParam)
historyList:=""
Loop 5
historyList.=A_Index ":`t" HSHELL[History[A_Index*2-1]] "`n`t" History[A_Index*2] "`n"
ToolTip %historyList%
}
后续更新
见AHK中文论坛\窗口监控相关