高效程序员秘籍(1):使用AutoHotKey快速切换窗口

  当我们打开电脑做一些事后,任务栏中就会有若干已打开应用程序的窗口,在它们之间切换,绝大部分人使用下面两种方式:

    1、使用Tab键

    2、直接用鼠标在任务栏中找到目标窗口再点击
  第一种方式效率更高一些,尤其是在当前窗口与上一个窗口切换的情况下,应该没有比使用Tab键更好的方法了。在我们工作的过程中,总会有那么几个固定使用的应用程序,比如IDE、浏览器、文本编辑器、邮箱客户端、即时通信工具、帮助文档等。如果我们能直接按下某个快捷键就能切换到目标窗口该多好啊,而且在该窗口不存在时直接打开相应的应用程序,这也算是一种快速打开应用程序的好方法。使用AutoHotKey就能达到这个目的。刚开始的时候需要适应一段时间,要把应用程序所对应的各个快捷键烂熟于心,以后打开或切换窗口就是一种本能反应了,对提高工作效率还是很有帮助的。
  AutoHotKey是一个Windows下的热键脚本语言,功能很强大,我也只是用到了它的皮毛而已,比如快速完成单词、切换窗口,有兴趣的同志们可以详细了解一下。
  首先,需要下载AutoHotKey,地址是http://dl.pconline.com.cn/html_2/1/65/id=39876%26pn=0.html
  安装完了之后,我们就有可执行的环境了,要实现快速切换窗口的目的,必须使用AutoHotKey的脚本语言写一个脚本,下面就是脚本的内容:
 
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
SetTitleMatchMode 2    

Activate(t)
{
  IfWinActive,%t%
  {
    WinMinimize
    return
  }
  SetTitleMatchMode 2    
  DetectHiddenWindows,on
  IfWinExist,%t%
  {
    WinShow
    WinActivate           
    return 1
  }
  return 0
}

ActivateAndOpen(t,p)
{
  if Activate(t)==0
  {
    Run %p%
    WinActivate
    return
  }
}

#a::ActivateAndOpen("Microsoft Outlook","outlook.exe")
#b::ActivateAndOpen("UltraEdit","C:\Program Files\UltraEdit\UltraEdit.exe")
#c::Activate("UltraEdit")

  这里简单地说一下,开头的几行是初始化语句,然后定义了两个函数:Activie和ActiveAndOpen,后者会调用前者。Activie的作用是激活指定标题(通过参数t传递,也可以是标题的一部分,只要能唯一识别该窗口即可)的窗口,如果当前窗口已经是待激活的窗口,那么隐藏它,如果窗口不存在的化,并不会打开相应的应用程序,也就是什么都不做,而ActivieAndOpen会在指定窗口不存在的情况下打开相应的应用程序,它的第一个参数是窗口标题,第二个参数就是应用程序的全路径。这两个函数定义后面的3条语句就是调用的示例,每一行就是一次函数调用,第一个字母#表示用Windows键作为快捷键的基本键,因为这个键本身所关联的快捷键比较少,所以建议大家都用这个键,第二个字母就是要和Windows键组合的键,比如#a就代表 Win+a作为快捷键,两个冒号后面定义的是要用这个快捷键做什么,这里我们的目的就是调用前面定义的两个函数之一,比如第一行用Win+a打开Outlook邮箱,如果还未打开就会启动它。把脚本内容拷贝到记事本中,保存成后缀为ahk的文件,然后点击这个文件,就可以在托盘中看到一个字母为H的绿色图标,至此,我们就可以通过预定义的快捷键进行窗口切换了。
  如果要修改脚本的内容,直接在托盘的H图标上点击右键,选择Edit This Script,编辑完后保存,再从右键菜单中选择Reload This Scipt让修改后的脚本生效。

你可能感兴趣的:(windows,脚本,Microsoft,performance,任务,文本编辑)