#SingleInstance Force
#Persistent
SetBatchLines,-1
/*
lib原贴: https://www.autohotkey.com/boards/viewtopic.php?t=830
Event:
0x1 事件\系统\声音 0x2 事件\系统\警报 0x3 事件\系统\前台
0x4 事件\系统\菜单启动 0x5 事件\系统\菜单 0x6 事件_系统_菜单开始
0x7 事件_系统_菜单支出 0x8 事件\系统\捕获启动 0x9 事件\系统\捕获结束
0xA 事件\系统\移动大小启动 0xB 事件\系统\移动大小 0xC 事件\系统\上下文帮助启动
0xD 事件\系统\上下文帮助端 0xE 事件\系统\拖动启动 0xF 事件\系统\拖缆
0x10 事件\系统\对话框启动 0x11 事件\系统\对话框结束 0x12 事件\系统\滚动启动
0x13 事件\系统\滚动显示 0x14 事件\系统\开关启动 0x15 事件\系统\开关端
0x16 事件\系统\最小化启动 0x17 事件\系统\最小化 0X8001 事件\对象\销毁
*/
;;前台活动窗口监控示例
WinEventID:=0 ;初始化监控前台窗口ID
WinEventHook:=SetWinEventHook(0x3,0x3,0, RegisterCallback( "HookProc","F"),0,0,flag=0) ;flag排除脚本消息?0x1:0x0
OnExit, HandleExit
Return
HookProc(WinEventHook, Event,hWnd,idObject,idChild,dwEventThread,dwmsEventTime ){
Global WinEventID
if Event {
if (WinEventID<>Format("0x{:x}",hWnd)&&hWnd>0){
;;==================窗口变化操作=========================================================
WinGetTitle, title, ahk_id %hWnd%
FileAppend,% title "`t" Format("0x{:x}",hWnd) "`t" WinEventID "`n`n",Message.txt
;;======================================================================================
WinEventID:=Format("0x{:x}",hWnd)
}
}
}
SetWinEventHook(eventMin, eventMax, hmodWinEventProc, lpfnWinEventProc, idProcess, idThread, dwFlags){
DllCall("CoInitialize", Uint, 0)
return DllCall("SetWinEventHook", Uint,eventMin, Uint,eventMax, Uint,hmodWinEventProc
, Uint,lpfnWinEventProc
, Uint,idProcess
, Uint,idThread
, Uint,dwFlags)
}
UnhookWinEvent()
{
Global WinEventHook
DllCall( "UnhookWinEvent", Uint,WinEventHook )
DllCall( "GlobalFree", UInt,&HookProcAdr ) ; free up allocated memory for RegisterCallback
}
HandleExit:
UnhookWinEvent()
ExitApp
Return
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
https://www.autohotkey.com/boards/viewtopic.php?t=830