效率利器 AutoHotKey

效率利器 AutoHotKey

自动热键

强大。简单易学。

Windows的终极自动化脚本语言。

Download —— 下载

AutoHotkey —— 官网

进入官网,没什么可说的,直接点击 Download 下载安装

安装成功后,是没有任何提示的,直接关闭安装程序即可!

Create a program —— 创建项目

桌面右键→→新建→→ AutoHotkey Script 即可创建一个脚本

新建一个文本文件,修改文件后缀名为 .ahk 格式也行

快捷键定义

;#代表win,

+代表shift,^代表Ctrl,

!代表Alt ;

如果要注释,可以用分号 也可以用//**

  • 1. 热键标记

    !:是热键标记,这里的感叹号代表键盘上的 alt 键。
    !n:即对应键盘热键 alt + n。

    常用热键标记对应关系:

    • # :win 键
    • ! :alt
    • ^ :ctrl
    • + :shift

    2. 连接

    符号 :: 意味着每次按下前面的热键时,随后的命令将会被执行。这里用来连接热键标记和 Run 命令。

    3. Run 命令

    Run 命令:用来启动一个程序、文档、URL 网址或者快捷方式。如:

    Run Notepad
    Run C:\My Documents\Address List.doc
    Run www.yahoo.com
    Run mailto:someone@somedomain.com
    

把上面 3 部分组合起来即可实现自定义快捷键。

Ctrl ^ ^
Shift + +
Alt ! !
Windows键 # #
#、^、+、!等 一般不用 {#}、{^}、{+}、{!}等
左Ctrl、左Shift、左Alt <^ <+ <!
右Ctrl、右Shift、右Alt >^ >+ >!
Enter {enter}
Tab {Tab}
F1、F12等 F1、F12等 {F1}、{F12}等
Esc {Esc}或{Escape}
空格 {Space}
Backspace {Backspace}或{BS}
Delete {Delete} or {Del}
Insert {Insert} or {Ins}
↑、↓、←、→ {Up}、{Down}、{Left}、{Right}
Home键 {Home}
End键 {End}
PageUp键 {PgUp}
PageDown键 {PgDn}
CapsLock键 {CapsLock}

Substitute character —— 替换字符

AutoHotkey —— 中文脚本手册
我们来一个简单的例子:输入 chinar 自动替换为 http://www.chinar.xin

在打开的记事本中输入:

第一种写法:

::oyk::http://oykperson.xyz/

第二种写法:

::oyk::
Send http://oykperson.xyz/
return
::bky::
Send https://www.cnblogs.com/
return

AHK语法中: Send 是发送命令, return 是结束

保存后,右键文件 →→ Run Script 运行脚本

然后,当我们输入文本chinar 按下 空格键 / 回车键 / tab 键时,会自动帮我们替换为http://www.chinar.xin

极速打开网页

#0::Run https://tinypng.com/

Win+0

自定义快捷键-打开文件或网址

!n::run notepad
!c::run, D:\SoftwareKit\_jade_new_soft\cmd_markdown_win64\Cmd Markdown.exe

Alt+n 或+c启动程序

一键拷贝文件路径

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

只需要Ctrl+shift+c即可拷贝文件路径

缩写快速打出常用语

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

键入/jeff 后,再加空格、或 tab、或回车

激活/打开/隐藏程序

#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

音量随心所欲

;最钟爱代码之音量随心所欲
;=========================================================
~lbutton & enter:: ;鼠标放在任务栏,滚动滚轮实现音量的加减
exitapp  
~WheelUp::  
if (existclass("ahk_class Shell_TrayWnd")=1)  
Send,{Volume_Up}  
Return  
~WheelDown::  
if (existclass("ahk_class Shell_TrayWnd")=1)  
Send,{Volume_Down}  
Return  
~MButton::  
if (existclass("ahk_class Shell_TrayWnd")=1)  
Send,{Volume_Mute}  
Return  

Existclass(class)  
{  
MouseGetPos,,,win  
WinGet,winid,id,%class%  
if win = %winid%  
Return,1  
Else  
Return,0  
}
;=========================================================

窗口操作

;=========================================================================
#enter:: ;最大化窗口
WinGet,S,MinMax,A
if S=0
    WinMaximize,A
else if S=1
    WinRestore,A
else if S=-1
    WinRestore,A
return

!enter:: ;最爱代码之窗口置顶
    WinGet ow, id, A
    WinTopToggle(ow)
    return
WinTopToggle(w) {
 
    WinGetTitle, oTitle, ahk_id %w%
    Winset, AlwaysOnTop, Toggle, ahk_id %w%
    WinGet, ExStyle, ExStyle, ahk_id %w%
    if (ExStyle & 0x8)  ; 0x8 为 WS_EX_TOPMOST.在WinGet的帮助中
        oTop = 置顶
    else
        oTop = 取消置顶
    tooltip %oTitle% %oTop%
    SetTimer, RemoveToolTip, 5000
    return
 
    RemoveToolTip:
    SetTimer, RemoveToolTip, Off
    ToolTip
    return
}

!x:: ;关闭窗口
send ^w
return

#c:: ;cosea版以管理员身份打开cmd命令行
Run *RunAs cmd ,,max
return

#m:: ;窗口最小化
WinMinimize, A
return

^delete::FileRecycleEmpty ;ctrl+del,清空回收站

F7::
Shutdown, 1 ;关机
;Shutdown, 2 ;重启
return

;代码之清除所有标点符号================================
F2:: ;清除所有标点符号,并换行
run notepad,,max
Loop
{
StringReplace, clipboard, clipboard, `, , `r`n, UseErrorLevel ;清除英文逗号
StringReplace, clipboard, clipboard, , , `r`n, UseErrorLevel ;清除中文逗号
StringReplace, clipboard, clipboard, `; , `r`n, UseErrorLevel ;清除英文分号
StringReplace, clipboard, clipboard, ; , `r`n, UseErrorLevel ;清除英文分号
StringReplace, clipboard, clipboard, . , `r`n, UseErrorLevel ;清除英文句号
StringReplace, clipboard, clipboard, 。 , `r`n, UseErrorLevel ;清除中文句号
StringReplace, clipboard, clipboard, : , `r`n, UseErrorLevel ;清除英文冒号
StringReplace, clipboard, clipboard, : , `r`n, UseErrorLevel ;清除中文冒号
StringReplace, clipboard, clipboard, ‘’ , `r`n, UseErrorLevel ;清除中文双引号1
StringReplace, clipboard, clipboard, “ , `r`n, UseErrorLevel ;清除中文双引号2
StringReplace, clipboard, clipboard, ” , `r`n, UseErrorLevel ;清除中文双引号3
StringReplace, clipboard, clipboard, ' , `r`n, UseErrorLevel ;清除英文双引号
StringReplace, clipboard, clipboard, 、 , `r`n, UseErrorLevel ;清除中文顿号
StringReplace, clipboard, clipboard, / , `r`n, UseErrorLevel ;清除右斜杠
StringReplace, clipboard, clipboard, \ , `r`n, UseErrorLevel ;清除左斜杠
StringReplace, clipboard, clipboard, - , `r`n, UseErrorLevel ;清除短横线
StringReplace, clipboard, clipboard, —— , `r`n, UseErrorLevel ;清除长横线
StringReplace, clipboard, clipboard, = , `r`n, UseErrorLevel ;清除等号
StringReplace, clipboard, clipboard, + , `r`n, UseErrorLevel ;清除加号
StringReplace, clipboard, clipboard, ( , `r`n, UseErrorLevel ;清除中文左括号
StringReplace, clipboard, clipboard, ) , `r`n, UseErrorLevel ;清除中文右括号
StringReplace, clipboard, clipboard, ( , `r`n, UseErrorLevel ;清除英文左括号
StringReplace, clipboard, clipboard, ) , `r`n, UseErrorLevel ;清除英文右括号
StringReplace, clipboard, clipboard, 【 , `r`n, UseErrorLevel ;清除中文【
StringReplace, clipboard, clipboard, 】 , `r`n, UseErrorLevel ;清除中文】
StringReplace, clipboard, clipboard, [ , `r`n, UseErrorLevel ;清除[
StringReplace, clipboard, clipboard, ] , `r`n, UseErrorLevel ;清除]
StringReplace, clipboard, clipboard, ! , `r`n, UseErrorLevel ;清除英文感叹号
StringReplace, clipboard, clipboard, ! , `r`n, UseErrorLevel ;清除中文感叹号
StringReplace, clipboard, clipboard, ? , `r`n, UseErrorLevel ;清除中文问号
StringReplace, clipboard, clipboard, ? , `r`n, UseErrorLevel ;清除英文问号
StringReplace, clipboard, clipboard, < , `r`n, UseErrorLevel ;清除英文<
StringReplace, clipboard, clipboard, > , `r`n, UseErrorLevel ;清除英文>
StringReplace, clipboard, clipboard, 《 , `r`n, UseErrorLevel ;清除中文《
StringReplace, clipboard, clipboard, 》 , `r`n, UseErrorLevel ;清除英文》
StringReplace, clipboard, clipboard, @ , `r`n, UseErrorLevel ;清除@
StringReplace, clipboard, clipboard, # , `r`n, UseErrorLevel ;清除#
StringReplace, clipboard, clipboard, $ , `r`n, UseErrorLevel ;清除$
StringReplace, clipboard, clipboard, `% , `r`n, UseErrorLevel ;清除%
StringReplace, clipboard, clipboard, ^ , `r`n, UseErrorLevel ;清除^
StringReplace, clipboard, clipboard, & , `r`n, UseErrorLevel ;清除&
StringReplace, clipboard, clipboard, * , `r`n, UseErrorLevel ;清除*
StringReplace, clipboard, clipboard, `` , `r`n, UseErrorLevel ;清除`
StringReplace, clipboard, clipboard, `:: , `r`n, UseErrorLevel ;清除::
StringReplace, clipboard, clipboard, " , `r`n, UseErrorLevel ;清除"
StringReplace, clipboard, clipboard, { , `r`n, UseErrorLevel ;清除{
StringReplace, clipboard, clipboard, }, `r`n, UseErrorLevel ;清除}
StringReplace, clipboard, clipboard, |, `r`n, UseErrorLevel ;清除|
StringReplace, clipboard, clipboard, ·, `r`n, UseErrorLevel ;清除中文···
StringReplace, clipboard, clipboard, ~, `r`n, UseErrorLevel ;清除~
StringReplace, clipboard, clipboard, _ , `r`n, UseErrorLevel ;清除_
    if ErrorLevel = 0  ; 不需要再进行替换.
        break
}
sleep,200
send,^v
return

F8:: ;清除Windows中文件名不能包含下列任何字符: \ / : * ? " < > | 
Loop
{
StringReplace, clipboard, clipboard, ? , , UseErrorLevel ;清除英文问号
StringReplace, clipboard, clipboard, * , , UseErrorLevel ;清除*
StringReplace, clipboard, clipboard, : , , UseErrorLevel ;清除英文冒号
StringReplace, clipboard, clipboard, " , , UseErrorLevel ;清除"
StringReplace, clipboard, clipboard, < , , UseErrorLevel ;清除英文<
StringReplace, clipboard, clipboard, > , , UseErrorLevel ;清除英文>
StringReplace, clipboard, clipboard, / , , UseErrorLevel ;清除右斜杠
StringReplace, clipboard, clipboard, \ , , UseErrorLevel ;清除左斜杠
StringReplace, clipboard, clipboard, |, , UseErrorLevel ;清除|
    if ErrorLevel = 0  ; 不需要再进行替换.
        break
}
return

;神级代码之锁定中英文=============================================
;功能:输入法状态提示 ;f3强制中文 f4强制英文小写
;环境:win10+搜狗输入法,输入法状态切换用默认的shift键。
;作者:kazhafeizhale 知乎@oahgnat11
#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.
#SingleInstance force

XButton1::^c
XButton2::^v

F3::
    SetCapsLockState,off
    switchime(0)
    switchime()
return

F4::
    SetCapsLockState,off
    switchime(0)
return

switchime(ime := "A")
{
    if (ime = 1){
        DllCall("SendMessage", UInt, WinActive("A"), UInt, 80, UInt, 1, UInt, DllCall("LoadKeyboardLayout", Str,"00000804", UInt, 1))
    }else if (ime = 0)
    {
        DllCall("SendMessage", UInt, WinActive("A"), UInt, 80, UInt, 1, UInt, DllCall("LoadKeyboardLayout", Str,, UInt, 1))
    }else if (ime = "A")
    {
        ;ime_status:=DllCall("GetKeyboardLayout","int",0,UInt)
        Send, #{Space}
    }
}

得到当前选中文件的路径

;=========================================================
#+c:: ;用快捷键得到当前选中文件的路径
send ^c
sleep,200
clipboard=%clipboard% ;windows 复制的时候,剪贴板保存的是“路径”。只是路径不是字符串,只要转换成字符串就可以粘贴出来了
tooltip,%clipboard% ;提示文本
sleep,500
tooltip,
return
;=========================================================

开机自启

把需要开机启动的脚本,放入 “启动” 文件夹即可。

目录:{C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup}

提示:避免和系统快捷键冲突

系统的常用快捷键都是使用Ctrl+XX和Alt+XX来组合的,而Win+XX的很少,所以我们应该尽量使用Win+XX来组合

/*温馨提示*/
;Windows系统默认的Win快捷键:
;Win + E:打开资源管理器;
;Win + D:显示桌面;
;Win + F:打开查找对话框;
;Win + R:打开运行对话框;
;Win + L:锁定电脑;
;Win + PauseBreak:打开系统属性对话框;
;Win + Q: 本地文件 / 网页等搜索;
;Win + U: 打开控制面板-轻松使用设置中心;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容

  • AutoHotkey是一个windows下的开源、免费、自动化软件工具。它由最初旨在提供键盘快捷键的脚本语言驱动(...
    晚晴幽草阅读 5,462评论 16 89
  • Eclipse常用快捷键 1几个最重要的快捷键 代码助手:Ctrl+Space(简体中文操作系统是Alt+/)快速...
    山不转人自转阅读 1,441评论 0 10
  • 注:中文应用部分仍需更新。转者按:本文属于零基础入门专题教程,原发表于 Download!网络密技王第三期,后转载...
    amnesiac阅读 3,364评论 0 6
  • 1.输入psv就会看到一个psvm的提示,此时点击tab键一个main方法就写好了。psvm 也就是public ...
    兜兜又喊阿兵哥阅读 1,105评论 0 0
  • 扇贝打卡 复习昨天的单词 长难句: 阅读只整理的tpo4的错题 明日计划: 1. 扇贝单词打卡,复习昨天的单词 2...
    呼噜毛_阅读 118评论 0 1