Fork Me

AHK之美

人生中有些事你不竭尽所能去做,你永远不知道你自己有多出色。
我不管这个世上的人怎么说我,我只想说依照我的信念做事,绝不后悔,不管现在将来都一样。
——《海贼王》@索隆

不,什么也没发生。

回归正题

AHk 之美。
AHK 即AutoHotKey,是一款免费的Windows平台下开放源代码的热键脚本语言。
用我自己的使用感受来说,减少重复动作,偷懒必备,有时候还能装装。。

简单说说

  • 优点:AutoHotkey体积小巧、语法简明易学易用,热键高效快捷。
  • 缺点:没有官方自带或第三方实现的完善的标准库,熟悉之后提升难度大。
  • 本文的目的是学会简单的使用,用较少的时间成本提高效率,而不需要具体去学习AHK。

下载安装

  1. 下载地址:https://www.autohotkey.com/download/
  2. 目前版本是1.1.26.00,大小2.66M。
  3. 选择自定义安装,选择32或者64位版本,自定义存放路径,下一步,安装。

简单易使用

  1. 在桌面新建一个txt文本,修改后缀名为.ahk的脚本文件,如My.ahk。
  2. 使用记事本方式或Notepad++之类的编辑器打开。
  3. 双击My.ahk,即可运行。
  4. 如果想要电脑开机自启脚本,可以先生成一个My.ahk快捷键。
  5. 然后把它放到 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup。

注意,360或安全管家之类的软件,会将其视为可疑的系统启动项。。别清了就行。

常用脚本符号含义

# 对应 Win 键;
! 对应 Alt键
^ 对应 Ctrl键
+ 对应 Shift键
:: 热字串符号
run 运行程序或者文档或其他
; 注释符号相当于 //

打开程序

如果记不住…

1
2
3
4
;-------! Alt-------
;-------# win--------
;-------^ Ctrl--------
;-------+ Shift--------

#j,按键顺序为12,先按win在按j,相反着无效。

1
#J::run calc.exe ;打开计算器

当两个符号时,^#不分前后,按键顺序为112。

1
2
^#J::run calc.exe ;打开计算器
^#n::Run Notepad.exe ;打开记事本

组建不但可以打开程序,还可以打完电脑文件夹,减少重复操作,解放右手~
按照个人习惯,我一般是alt+其他打开文件或者应用,如下:

1
2
3
4
;----------------------Alt+ 打开文件夹||应用------------------
!g::run ,"D:\program files\software\git2.13\Git\git-bash.exe"
!b::run ,"D:\program files\init-blog\chuoxk"
!y::run ,"D:\youdao\Dict\YodaoDict.exe"

打开多个应用。

1
2
3
4
5
;----------------------WIN+Q 打开wamp和phpstorm---------------------
#p::
run ,"D:\program files\wamp\wampmanager.exe"
run ,"C:\Program Files (x86)\JetBrains\PhpStorm 2016.1\bin\PhpStorm.exe"
return

打开网址

1
2
3
4
5
6
; --------------------win+Alt打开 V2||百度||Github||bing||Coding---------------
#!v::run https://www.v2ex.com/
#!g::run https://github.com
#!b::run https://www.bing.com/
#!c::run https://coding.net/user
......

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

缩写速打

1
2
3
4
5
;-------------------/test 接空格或者tab就可以速打出来啦 ---------
::/ch::http//chouxk.top/
::/bd::https://www.baidu.com/
::/con::console.log()
::/314::3.1415926535857932384626

获取时间

1
2
3
4
5
6
7
8
9
10
11
12
13
;--------------------获取当前时间并复制-------------------------
;方式一
#!d::
d = %A_YYYY%-%A_MM%-%A_DD% %A_Hour%:%A_Min%:%A_sec%
clipboard = %d%
Send ^v
return
;方式二
::/time::
d = %A_YYYY%-%A_MM%-%A_DD% %A_Hour%:%A_Min%:%A_sec%
clipboard = %d%
Send ^v
return

可按自己需求,修改参数及样式,如:2017/7/6 则 d=%A_YYYY%/%A_MM%/%A_DD%。

颜色神偷

1
2
3
4
5
6
7
8
9
10
^+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

获取当前鼠标所在位置的颜色!非常Nice,我只想说感谢作者。
献上作者连接,AHK 快餐店系列
里面还有其他说不定对你有用的功能,这里就不一一说到。

激活/打开/隐藏浏览器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#c::
IfWinNotExist ahk_class Chrome_WidgetWin_1
{
Run "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
WinActivate
}
Else IfWinNotActive ahk_class Chrome_WidgetWin_1
{
WinActivate
}
Else
{
WinMinimize
}
Return

Win+C,判断 chrome 状态,没有打开则打开chrome,打开了则隐藏,最小化。

复制文件路径

1
2
3
4
5
6
7
8
9
#^c::
; null=
send ^c
sleep,200
clipboard=%clipboard% ;%null%
tooltip,%clipboard%
sleep,500
tooltip,
return

点击选中文件按 Win+Ctrl+C 就能复制改文件的完全路径,非常实用。

改CapsLock为Enter

1
2
3
4
;replace CapsLock to LeftEnter; CapsLock = Alt CapsLock
$CapsLock::Enter
LAlt & Capslock::SetCapsLockState, % GetKeyState("CapsLock", "T") ? "Off" : "On"
!u::Send ^c !{tab} ^v

改CapsLock为Enter,而原来的CapsLock切换大小写改为Alt+CapsLock。

双击Esc == F4

1
2
3
4
5
6
7
8
9
10
11
12
13
;-----------------------双击Esc == F4---------------------------
~Esc::
Keywait, Escape, , t0.5
if errorlevel = 1
return
else
Keywait, Escape, d, t0.1
if errorlevel = 0
{
WinGetActiveTitle, Title
WinClose, %Title%
return
}

CapsLock利用

1
2
3
4
5
6
7
8
9
10
11
12
13
;-----------CapsLock+IKJL 方向的上左下右,CapsLock H 删除文字 CapsLock N 恢复删除----------
$CapsLock::
KeyWait, CapsLock
If (A_PriorKey="CapsLock")
SetCapsLockState, % GetKeyState("CapsLock","T") ? "Off":"On"
Return
#If, GetKeyState("CapsLock", "P")
i::Up
j::Left
k::Down
l::Right
h::Backspace
n::^z

感觉还可以,没习惯过来,不过有点神来之笔的感觉。。
请把这端放到文本最后,否则会出现诡异的情况~

感谢

晚晴幽草轩轩主  V2EX

总结

  • 生活不易,只争朝夕
  • 能偷懒,又能折腾何乐而不为呢 φ(>ω<*)
  • 本着记录和分享的原则,写下这篇文章,希望对各位有所帮助
  • 持续更新更多实用脚本,欢迎留言补充

更新时间:2017/07/08 16:53:24