1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| #NoEnv #SingleInstance Force #Persistent SetTitleMatchMode, 2 ; 窗口标题部分匹配
; ===== 用户配置区域 ===== targetApp := "浙政钉" ; 窗口标题包含的关键词 intervalMinutes := 30 ; 执行间隔(分钟) clickX1 := 33 ; 点击的X坐标(相对于窗口) clickY1 := 500 ; 点击的Y坐标(相对于窗口) clickX2 := 33 ; 点击的X坐标(相对于窗口) clickY2 := 130 ; 点击的Y坐标(相对于窗口)
; =======================
; 创建托盘菜单 Menu, Tray, Add, 暂停/继续, TogglePause Menu, Tray, Add, 立即执行, RunNow Menu, Tray, Add Menu, Tray, Add, 退出, ExitApp Menu, Tray, Default, 暂停/继续 Menu, Tray, NoStandard
; 初始化状态 isPaused := false SetTimer, ClickPosition, % intervalMinutes * 60000 ; 转换为毫秒
; 首次执行提示 MsgBox, 64, 黄磊的浙政钉助手, 脚本已启动!`n每 %intervalMinutes% 分钟将在后台点击一次。`n
return
; 主执行函数 ClickPosition: ; 查找浙政钉窗口 WinGet, winList, List, ahk_exe DingTalkGov.exe Loop, %winList% { winID := winList%A_Index% WinGetTitle, title, ahk_id %winID% if InStr(title, targetApp) { ; 后台消息级点击 (不激活窗口) ControlClick, X%clickX1% Y%clickY1%, ahk_id %winID%,,,, NA Sleep, 3000 ControlClick, X%clickX2% Y%clickY2%, ahk_id %winID%,,,, NA TrayTip, 浙政钉助手, 已执行后台点击 (窗口: %title%),, 1 return } } TrayTip, 黄磊的浙政钉助手, 未找到浙政钉窗口!,, 3 return
; 暂停/继续 TogglePause: isPaused := !isPaused if isPaused { SetTimer, ClickPosition, Off TrayTip, 黄磊的浙政钉助手, 已暂停, 5, 1 } else { SetTimer, ClickPosition, On TrayTip, 黄磊的浙政钉助手, 已恢复运行, 5, 1 Gosub, ClickPosition ; 立即执行一次 } Menu, Tray, Rename, 暂停/继续, % isPaused ? "继续" : "暂停" return
; 立即执行 RunNow: Gosub, ClickPosition return
; 退出程序 ExitApp: ExitApp return
|