本脚本基于 AutoHotKey v2.0,其他版本不保证能使用
本脚本可以让应用自动打开、显示、隐藏
使用教程
-
安装Auto Hot Key,进入官网链接,下载v2.0版本,下载完后安装即可
-
新建一个文件以
.ahk
结尾即可,例如jiaoben.ahk
-
右键文件,以记事本方式打开
-
将下面的脚本代码粘到文件里 在文章末尾
-
通过AutoHotKey Window Spy获取软件的ahk_exe ,(这个软件在Windows菜单里能找见)
-
打开 Follow Mouse ,将鼠标对准你的应用, ahk_exe在最上方的文本框里
-
在脚本最上方添加
!+w:: OpenSWWithRun("ahk_exe 语雀.exe", "E:\yuque\yuque-desktop\语雀.exe")
- 其中
w
可以换成任意字母 ahk_exe 语雀.exe
换成自己的信息E:\yuque\yuque-desktop\语雀.exe
换成自己的信息
- 其中
-
按 alt + shift + w 即可快速 显示/隐藏 应用。w可以换成任意字母
函数说明
OpenSWWithRun(name, location)
:
name
:是通过Auto Hot Key自带的Spy获取的软件信息,例如ahk_exe 语雀.exe
location
:是软件所在位置,例如E:\yuque\yuque-desktop\语雀.exe
脚本代码
!+w:: OpenSWWithRun("ahk_exe 语雀.exe", "E:\yuque\yuque-desktop\语雀.exe")
; 检测隐藏的窗口
DetectHiddenWindows True
;
; 若应用不存在,自动打开
;
OpenSWWithRun(name, location) {
try {
; pid := WinGetPID(name)
OpenExistedSW(name)
} catch Error as e {
try {
; MsgBox(e.Message)
Run location
TrayTip("自动启动" name, "AHK自动启动程序", 1)
} catch Error as ex {
; MsgBox(ex.Message)
TrayTip("无法启动:" name ",错误信息:" ex.Message, "AHK自动启动程序", 3)
}
}
}
global preFocusedSW := -1
OpenExistedSW(name) {
global ;
; MsgBox(preFocusedSW)
if WinActive(name) {
WinHide(name)
temp := "ahk_pid " preFocusedSW
; MsgBox(temp)
WinActivate(temp)
} else {
preFocusedSW := GetActiveWindowPID()
; MsgBox(preFocusedSW)
; pid:= WinGetTitle("ahk_id " preFocusedSW)
; MsgBox(pid)
WinShow(name)
WinActivate(name)
}
}
; 使用 DllCall 获取当前聚焦窗口的 PID
GetActiveWindowPID()
{
; 获取当前活动窗口的句柄
hWnd := DllCall("GetForegroundWindow")
; 获取窗口所属进程的 PID
; DllCall("GetWindowThreadProcessId", "UInt", hWnd, "UInt", &processId)
pid := WinGetPID("ahk_id " hWnd)
; 返回进程的 PID
return pid
}