自用的一些窗口相关的 AHK 片段

键盘虚拟层定义记录继续讨论:

以下代码均为 AHK2.0 语法 。

鼠标侧键

前进后退键一般很少有人用吧,反正我是不用,但设置为窗口切换键可以大幅度提升操作效率。

switchWindows(){
  winPPath := WinGetProcessPath("A")
  WinActivateBottom "ahk_exe" . winPPath
}

XButton1:: switchWindows
XButton2:: Send "#{Tab}"
  • 前进键:等同于 Win+Tab
  • 后退键:切换同一程序程序的不同窗口

窗口绑定快捷键

Wins := {}
WinKeys := ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]
bindWindow(key){
  If (GetKeyState("LCtrl")){
    Wins.%key% := ""
    Return
  }
  If (Wins.%key%!==""){
    try
    {
      WinActivate "ahk_id " . Wins.%key%
    }
    catch as e
    {
      SoundBeep 888, 300
      Wins.%key% := ""
    }
    Return
  }
  Wins.%key% := WinGetID("A")
}
For Key, Value in WinKeys
{
  realKey := "Tab & " . Value
  Wins.%realKey% := ""
  Hotkey realKey, bindWindow
}
  • Tab+数字键触发
    • 如果没有绑定过窗口,绑定当前窗口
    • 如果绑定过窗口,切换到对应窗口
    • 如果绑定过窗口,但没找到对应窗口,Beep 一声,同时清除此绑定
  • LCtrl+Tab+数字键 清除绑定

10 组绑定都够用了吧,多了记不住。你也可以改成其他按键(第二行的数组)

3 个赞