2016-03-11 from–https://www.cnblogs.com/jadeboy/p/5274995.html

AutoHotkey是一个windows下的开源、免费、自动化软件工具。它由最初旨在提供键盘快捷键的脚本语言驱动(称为:热键),随着时间的推移演变成一个完整的脚本语言。但你不需要把它想得太深,你只需要知道它可以简化你的重复性工作,一键自动化启动或运行程序等等;以此提高我们的工作效率,改善生活品质;通过按键映射,鼠标模拟,定义宏等。

如觉此处排版不尽如你意,可移步Win下最爱效率神器:AutoHotKey查看,(^^)。

图片来自:zoommyapp.com

如要问__AutoHotKey__是什么?这是一个仁者见仁,智者见智的问题。你可以将其看作是一个热键增添器,也可以当成改键器/屏幕录制器,或者是游戏热键外挂等等。你可以在AutoHotkey 擅长什么?得到一个方向;笔者这里只是介绍一些粗浅却很实用的用法,与诸君分享。

下载安装AutoHotkey

在浏览器中输入网址 http://www.autohotkey.com/ 进入AutoHotkey的官网,点击“download”下载即可将AutoHotkey保存到本地磁盘。接着双击点击安装就可以了。

建立AutoHotkey脚本

安装完成后默认会在系统盘的“本地文档”下创建一个”AutoHotkey.ahk”脚本,双击以后我们会看到任务栏右下角有个图标,就表示它在运行了[如下图标注处所示]。我们在里面写入相应的映射代码然后右击选择”reload this script“执行它就可以开始使用AutoHotkey里面设置好的功能了。
AutoHotKey

如果我们想在其他地方放置脚本怎么办呢?很简单,只要新建一个文本文档,将其后缀名改为.ahk然后执行它就行了。所以,在同一台电脑中,你甚至可以存放多个脚本。当用不到该脚本了只需要,鼠标移到该图标处,右键选择exit即可,很是方便。

为了方便修改该脚本,你可以将其放置于你觉得方便的位置,丝毫不影响,双击可运行之。我们还可以为该脚本设置开机自启动,只需要将该脚本生成一个“快捷方式”,然后将此快捷方式放置到程序自启动文件夹之下即可,一般都在这儿:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

如此一开机,就可以使用脚本中所配置的功能,大为便捷。

简单实用的实例

这里简单说明下脚本中常用符号代表的含义:

# 号代表 Win 键;
! 号代表 Alt 键;
^ 号代表 Ctrl 键;
+ 号代表 shift 键;
:: 号(两个英文冒号)起分隔作用;
run,非常常用 的 AHK 命令之一;
; 号代表 注释后面一行内容;

run它的后面是要运行的程序完整路径(比如我的Sublime的完整路径是:D:\Program Files (x86)\Sublime Text 3\sublime_text.exe)或网址。为什么第一行代码只是写着“notepad”,没有写上完整路径?因为“notepad”是“运行”对话框中的命令之一。

如果你想按下“Ctrl + Alt + Shift + Win + Q”(这个快捷键真拉风啊。( ̄▽ ̄))来启动 QQ 的话,可以这样写:

^!+#q::run QQ所在完整路径地址。

AutoHotKey的强大,有类似Mac下的Alfred2之风,可以自我定制(当然啦,后者还是强大太多)。所以可以说,她强大与否,在于使用者的你爱或者不爱折腾。学以致用,如果简单的折腾下,可以使得我们工作效率大幅提升,何乐不为?况且,在见识的增长中,这可以给我们思维带来极大的营养。以下是笔者常用功能的脚本配置:

极速打开网页

;Notes: #==win !==Alt 2015-05-20  ^==Ctr  +==shift

;=========================================================================
#j::Run www.jeffjade.com
#b::Run https://www.baidu.com/
#c::Run https://www.google.com/
#y::Run http://www.cnblogs.com/jadeboy/
#0::Run https://tinypng.com/
#v::Run https://www.v2ex.com/
;-------------------------------------------------------------------------

这是特常用的功能;如上脚本,Win+J即可打开自己个人博客,Win+0则打开熊猫网址去压缩图片… …。不管pc焦点何在,使用自己配置的快捷键,即可达到所想,方便而快捷,大慰我心。网上冲浪,自然选取了Chrome,配之以Vimium插件Vimium~让您的Chrome起飞,分分钟甩掉鼠标;生命聊聊不过百年,如此短暂,在鼠标经常性滑过去来做一些可以更高便捷的事儿,所不必要消耗的一秒半秒,我没那么慷慨(即使我会花费更多时间去发发呆)。

温馨提示: 以下几个系统默认的 Win 快捷键:
Win + E:打开资源管理器;
Win + D:显示桌面;
Win + F:打开查找对话框;
Win + R:打开运行对话框;
Win + L:锁定电脑;
Win + PauseBreak:打开系统属性对话框;
Win + Q: 本地文件/网页等搜索;
Win + U: 打开控制面板-轻松使用设置中心;

便捷呼出程序

!n::run notepad
!c::run, D:\SoftwareKit\_jade_new_soft\cmd_markdown_win64\Cmd Markdown.exe
!r:: run, D:\SoftwareKit\_jade_new_soft\cmder_mini\Cmder.exe
!q::run, D:\Program Files (x86)\Tencent\QQIntl\QQUninst.exe
!space::run, D:\Program Files (x86)\Sublime Text 3\sublime_text.exe
;==========================================================================

以上为Alt外加一些键来打开本地应用程序。即便完全可以自己配置热键,但是一旦多了,不常用的话记起来也略显麻烦。所以选择Alt键组合来打开本地应用程序。Win键来呼出网页。在有了Launchy这类软件之后,也就不怎么过为本地程序配置快捷键了。

之前一段时间认为,珍爱生命,就当远离Windows。在给其配了SSD硬盘,在不断折腾应用一些软件,在不断了解&熟悉Windows之后,这一想法倒也缓和了不少。Windows下的AutoHotKey + Listary + Launchy 组合,倒也有了点Mac下 Alfred2免费功能部分。这一点在Windows下效率必备软件中有过记载。

一键拷贝文件路径

^+c::
; null= 
send ^c
sleep,200
clipboard=%clipboard% ;%null%
tooltip,%clipboard%
sleep,500
tooltip,
return

只需要Ctrl+shift+c即可拷贝文件路径;方便快捷,爽!。

改掉大写键为Enter

;replace CapsLock to LeftEnter; CapsLock = Alt CapsLock
$CapsLock::Enter

LAlt & Capslock::SetCapsLockState, % GetKeyState("CapsLock", "T") ? "Off" : "On"

!u::Send ^c !{tab} ^v

看网上朋友说CapsLock(大写切换按键)没怎么大用处;想来也是,个人每次需要输入大写字符,也是配合Shift来实现。那么此按键意义何在?那就改成Enter键好了。有时候右手需要操纵鼠标时候,左手小拇指按此键来实现换行,蛮好;既然大写切换不怎么常用,那么用Alt+CapsLock来组合实现也无不妥;以上脚本即为此意。

缩写快速打出常用语

::/mail::gmail@gmail.com
::/jeff::http://www.jeffjade.com/
::/con::console.log();
::/js::javascript:;
::/fk::轩先生这会子肯定在忙,请骚后。thx。祝君:天天开心,日日欣悦。

AutoHotKey一个很强大之处,在任何能正常显示 unicode字符的程序中(比如浏览器的地址栏、MS Word Rtx);如以上代码,键入/jeff 后,再加空格、或 tab、或回车,就可以触发缩写;根据输入不同方式(空格,tab,回车)输出的内容后也相应附加了[空格/tab/回车,用起来很是舒爽]; 当然了这里/jeff也可以配置其他如:jeff,按照个人喜好了。

颜色神偷

^#c::
MouseGetPos, mouseX, mouseY
; 获得鼠标所在坐标,把鼠标的 X 坐标赋值给变量 mouseX ,同理 mouseY
PixelGetColor, color, %mouseX%, %mouseY%, RGB
; 调用 PixelGetColor 函数,获得鼠标所在坐标的 RGB 值,并赋值给 color
StringRight color,color,6
; 截取 color(第二个 color)右边的6个字符,因为获得的值是这样的:#RRGGBB,一般我们只需要 RRGGBB 部分。把截取到的值再赋给 color(第一个 color)。
clipboard = %color%
; 把 color 的值发送到剪贴板
return

这个功能,搞Web端还是可以备着的。很好用,按下配置好快捷键,即可取得鼠标所在光标处颜色色值到剪切版中-爽啊。(个人用Win+C呼出了 ChromeAlt+C调出作业部落客户端__Cmd Markdown__,所以这里就用了Ctrl+Win+c来取色,也还算方便)

神速激活/打开/隐藏程序

#c::
IfWinNotExist ahk_class Chrome_WidgetWin_1
{
    Run "C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe"
    WinActivate
}
Else IfWinNotActive ahk_class Chrome_WidgetWin_1
{
    WinActivate
}
Else
{
    WinMinimize
}
Return

以上这段脚本可以做到,Chrome的各种状态切换:Win+C,Chrome没打开状态时候 –> 打开;打开没激活状态时候 –> 激活;打开处在激活状态时候 —> 隐藏。恩,我用着挺爽的,你也试试?

折腾AutoHotKey总结

折腾是奔着实用才去做的,所以笔者也只是看下可以常用功能而已。其实AutoHotKey远不止如此;AutoHotkey 学习指南这里可见一斑。网络上也可以搜出AutoHotKey 懒人包,里面有二十余脚本,如:“计时器”“禁止Win键”“秒杀窗口,左键加右键”云云;需要的话下载即可使用;知乎有一专栏AutoHotkey 之美,粗略扫了下,算是一可以扩充见识之门;AutoHotKey实用脚本分享一文介绍了一些常用脚本实例,有兴趣更多了解AutoHotKey的朋友们,可参看下。

AutoHotKey定有很多好用的功能,此文仅作简单介绍,抛砖以引美玉。希望知道更多有用玩法的朋友可以慷慨分享,让我等Coder效率可以提一提,节省那么些时间:去学习,去把妹(/泡哥),去享受生活。如果可以,也殷切希望,以此篇介绍给不怎么爱折腾的朋友带来一点参考。王小波在《思维的乐趣》中引用罗素一言:「须知参差多态,乃是幸福的本源」;如果您不喜欢折腾,这里并无勉强之意;生活之事,快乐就好。

最后自荐简书一专题《折腾之美》:工欲善其事,必先利其器。大道至简:因为折腾,所以简洁;为爱折腾的你而生,欢请你的入盟(专题起源可参见折腾之美-序)。