AHK 快餐店[12] 之 秒杀窗口,左键加右键 1上回我们把桌面折腾个半死,今天我们要折腾的是:鼠标。

怎么又折腾起鼠标来啦?orz,因为今天大家都去参加 FeedSky 赞助的中文网志年会去了。(什么破理由~)我好想去啊,但人在上班,身不由己。- –

很久以前,就在简睿随笔学了这个技巧,左键加右键关闭当前窗口,但它不适合火狐等多窗口的浏览器,不支持  Gtalk 的聊天窗口,会“自杀”。今天就是要把掌柜我修改后的脚本和大家分享。

先介绍一下:这个脚本的用法是按住左键,点击右键(当右键按下的时候)触发脚本,脚本会根据窗口标题来判断,是向当前窗口发送关闭窗口的动作还是关闭标签(快捷键是 Ctrl + W)的动作。如果是 Gtalk 的聊天窗口则发送 Alt + F4,如果是 AutoHotKey 的窗口则发送 Esc。

点击这里下载下面的代码。

~LButton & RButton::
; 按住不放 A 键再按 B 键的写法是 “A & B”(真的可以这样写哦,真的可以实现这样的快捷键)。“~”在这里是指示原有的左键仍要处理,若不加“~”则左键就失效了。
WinGetClass, class, A
; 这个语句是专门对付 Gtalk 的。获得当前活动窗口(最后的 A 参数就是代表当前活动窗口)的类(class)名,并赋值给 class。类名这个词好专业啊。GTalk 的聊天窗口的标题是没有规律的,但它们都是同一类,其类名都是 Chat View。用比喻来说,我们都是同一个“类”,我们都是人类,这个类又可以细分为很多“类”。
IfInString, class, Chat
; 判断 class 中是否含有 chat
{
    send !{F4}
    return
    ; 有的话,说明很可能(99.9%)是 Gtalk 的聊天窗口啦,发送 Alt + F4 关闭聊天窗口。并且结束脚本。
}
WinGetActiveTitle, Title
; 获取当前活动窗口的标题,赋值给 Title
IfInString, Title, Firefox
; 判断 Title 中是否含有 Firefox ,无论我们打开什么网页,这个是永远不变的,你也可以试试用类名来判断。文末会介绍怎么获得一个窗口的类名。
{
    send ^w
    return
}
IfInString, Title, AutoHotkey
{
    send {esc}
    return
}
else
; 这个 else 是多余的,历史遗留问题。orz
    WinClose, %Title%
return

要获得一个程序的类名,很简单。右击 AHK 的系统托盘图标,然后选择“Window spy”。关于这个东东请参考这里(文章是 yonken 写的,匆忙之下没在 yonken 的博客找到原文,见谅)。

另,这个脚本杀不死 AHK 的帮助文件窗口。其他的帮助窗口测试了两个都能杀掉。想要关闭资源管理器的话,要在地址栏按下快捷键。

下期预告:AHK 快餐店[13] 之 秒表