/* 为QQ增加热键 这个脚本前提是,你要激活的窗口需要事先打开的(且主面板不能最小化)。 然后用win+f1 探测它们; 然后就自动做如下绑定: win q 消息盒子 win a 会话列表 win z 激活主面板 只有主窗体绑定热键前是不能最小化 Author: sunwind Blog: http://blog.csdn.net/liuyukuan Copyright: 2016 sunwind Date: 2016年2月19日23:36:07 AutoHotkey Version: 1.1.23.01 OS: WIN_7 */ #SingleInstance force #Persistent DetectHiddenText, On SetTitleMatchMode,2 ;~ 2: 窗口标题的某个位置必须包含WinTitle。. WinTitle=ahk_class TXGuiFoundation main: WinGet, winList,List,%WinTitle% wins:=[] Loop,%winList% { this_id=% winList%A_Index% WinGetTitle,this_title,ahk_id %this_id% MsgBox,%this_title% wins.Insert({index:A_Index,title:this_title,id:this_id}) } main_flag:=box_flag:=message_flag:=0 for each,win in wins { if InStr(win.title,"QQ") { main_flag:=1 main_id:=win.id Hotkey,#z,bind } else if InStr(win.title,"消息盒子") { box_flag:=1 box_id:=win.id Hotkey,#q,box } else { message_flag:=1 message_id:=win.id Hotkey,#a,message } } if (main_flag=1) { MsgBox 已经绑定热键#z为主面板激活热键 } if(main_flag=0) { MsgBox 请先运行主窗体后,再用#F1探测窗口,程序会自动绑定热键#z为主面板激活热键。 } if(box_flag=1) { MsgBox 已经绑定热键#q为消息盒子激活热键 } if(box_flag=0) { MsgBox 请先运行消息盒子后,再用#F1探测窗口,程序会自动绑定热键#q为消息盒子激活热键。 } if(message_flag=1) { MsgBox 已经绑定热键#a为会话列表窗口激活热键 } if(message_flag=0) { MsgBox 请先运行会话列表窗口后,再用#F1探测窗口,程序会自动绑定热键#q为行会话列表窗口激活热键。 } return ;~ #q box: WinActivate,ahk_id %box_id% return ;~ #a message: MsgBox,%message_id% WinActivate,ahk_id %message_id% return ;~ #z bind: WinActivate,ahk_id %main_id% return #f1::gosub main