AutoHotkey 快捷键脚本工具更快的使用你的键盘提高操作效率
本文适合于:每天用电脑工作学习的朋友、游戏发烧手指又不灵敏的朋友、希望提高自己使用电脑效率的朋友。
本文将将告诉你AutoHotkey能做什么,并会一步一步地教会你轻易地使用它,但不会教你更多AutoHotkey的高级和复杂用法。不过对大多数人来说,我所教的这些也已经完全够用。
一、AutoHotkey是什么?
根据百度定义,如下:
AutoHotkey 是一款免费的、Windows平台下开放源代码的热键脚本语言。有了它,您就可以:
通过发送键盘或鼠标的键击动作命令来实现几乎所有操作的自动化。您可以自己编写 宏或者使用宏录制器来生成;
为键盘,游戏操纵杆和鼠标创建热键。 事实上任何的按键、按钮或组合键都可以被设置为热键;
当键入您自定义的缩写时可以扩展缩写。例如, 键入“btw”就可以自动扩展为“by the way”;
创建自定义的数据输入表格、用户界面、菜单等。详情请看 图形界面 部分;
映射 键盘、游戏操纵杆和鼠标上的按键或按钮;
运行现有的AutoIt v2脚本 并用 新功能 来增强它们;
将脚本文件编译成EXE可执行文件,使得程序在没有安装AutoHotkey的机器上得以运行;
借助相关工具以实现更强大的功能。
二、AutoHotkey的安装
Autohotkey的安装:下载地址http://www./softs/26354.html,大约2M大小,正常安装即可。
三、一步一步学会AutoHotkey[这个教程大约需要三十分钟]
第一课:Getting Started
先从一个小例子开始,按着一步步操作就好。
1、 在任意一个地方新建一个文本文件,打开,输入以下内容:
#n::run notepad
2、 更改文件名后缀为.ahk
3、 选择此文件单击右键,可以看到有个Run Script,单击它。此时可以看到在状态栏里有个绿色的H图标安静着躺着。你再试试按windows+n键,记事本程序启动了吧,那么没错,这就是AutoHotkey在工作。
回顾一下这个流程:写好ahk文件------运行它--------使用定义好的快捷键启动程序,很简单,不是嘛。试试将n换成另一个键m,当然结果就变成了windows+m打开记事本。试试将#号换成^,这下变成ctrl+n打开记事本啦。还可以这样写#^n,就是说要windows+ctrl+n打开记事本,常用组合键的标记符号是:ctrl:^,shift:+,windows:#,alt:!。(你还可以区分左右shift,ctrl等等,不过我在这里就不说了),它们可以任意组合起来。
第一课完毕,很简单,不是嘛!
第二课:启动更多程序
你自然不会只满足于用windows+z或者其它快捷键启动一个简单的notepad,所以,请再继续下去。
设想你的目的是用windows+Q打开我们常用的QQ程序,假设它所在位置是这个:D:/Program Files/Tencent/QQ/Bin/QQ.exe,那么现在把第一课的那个文件内容换成:
#n::run D:/Program Files/Tencent/QQ/Bin/QQ.exe
然后双击运行它,按下windows+Q,QQ又乖乖地启动了吧!
对于其它的许多程序,它们也可以这样加一句,比如像下面这样子,你可以写许多句这些语句在这个.ahk文件内:
#n::run notepad
#c::run Calc
还可以一个键打开多个程序,像这样子
复制代码
代码如下:
#n::
run notepad
run calc
return
效果就是按windows+n会同时打开notepad和calc,注意后面的return必须要,不然它不知道什么时候结束。
在这一课的最后教你的一个高级技巧。
刚刚我们定义了一个快按键#n::run D:/Program Files/Tencent/QQ/Bin/QQ.exe,如果我们改天QQ装到了C盘呢,或者把这个文件弄到别人电脑上执行,那这时候就需要更改这句了吧,这么一句还好,要是我们有很多很多句,那工作就大了。所以,我们可以这样子做:
比如说在D盘新建一个文件夹,比如命名为QuickStart吧,现在把要启动的程序都建一个快捷方式在里面。然后,把#n::run D:/Program Files/Tencent/QQ/Bin/QQ.exe这句这样写:
PROGRAMDIR:= "D:/QuickStart"
#n::run % PROGRAMDIR %/QQ
简单地解释一下,第一句定义了一个变量,存着"D:/QuickStart"这个目录,第二句% PROGRAMDIR%引用了这个地址。这样的好处就是下次要改就只要改PROGRAMDIR这个变量了,不错吧。
第三课:任意组合按键
还是先看一个实例,把下面这句输入你的.ahk文件
+!h::
send Hi,what’s a nice day!{enter}
return
随意找一个可以输入文本的地方按shift+alt+h,是不是一下子就输出了Hi,what’s a nice day!这句话,还回车了一下。不用我说,现在你必定已经明白AutoHotkey可以干嘛了。
下面我再看了一个更实际的应用:
就说我现在所在的Word2007,如果我想插入一个目录,那么用鼠标的话,应该是在引用-目录-插入目录下,如果用按键的话,应该是先按Alt,再按s,再按t,再按i。自然,用Autohotkey可以把这些键定义为一个快捷键,像下面这样:
#1::
SetKeyDelay, 50
send {alt}styi
return
先试用一下,再看我讲解,第三句是发送按键,虽然写在了一行,但其它你也可以这样写:
send {alt}
send s
……
但这样较长,对吧,但这样你可以更加理解它们是一个一个地发送的。这里的关键在于第二句,它设置每个键发送间的延时是多少,-1一般表示0,0表示尽可能小的时差,数字表示ms,为更好理解,把这个数字设为1000,然后运行,现在再在Word里试一下,是不是像是在慢动作回放,话说这种感觉是不是很好哇!
如果这个值太小了,会达不到预期目的。因为从一个键按下后,Word程序接收了此按键及响应此消息都是需要时间的,就像你把10个字在1秒内向别人喊出来(如果你可以的话),那别人肯定听不明白。所以我们必须给它足够的反应时间,这个值设多大,与具体的程序有关,如果这些程序要进行复杂操作,响应时间可以较长,对于一般的程序,我觉得50应该是够了的。一般第一次使用可以不成功,第二次就可以了,原因应该很容易想明白。
本节的内容讲完了,使用本节的知识已经可以干许多许多事情了。比如说将游戏中的复杂按键定义为一热键,由于像拳皇那样的格式游戏,肯定也会很High的。
不过刚刚在前面说到输出Hi,what’s a nice day!这句,当时不忍心打断大家学习的思路,到这里,我要提出一个问题来:那就是,如果你把这句话换成中文或者哪怕只是一个中文标点,输出的就乱码。这个问题没有解决,因为我没有找到AutoHotkey有设置编码格式的地方,所以如果大家有解决方案请发邮件告诉我hejw06@gmail.com啊
第四课 更实用的两个例子
这是最后一课,我也写累了,所以不细解释了,看下面这个例子:
(;是注释符)
复制代码
代码如下:
+!l:: ;切换到Lingoes
IfWinExist Lingoes
{
WinActivate
}
else
{
Run %PROGRAMDIR%/Lingoes
WinWait Lingoes
WinActivate
}
return
它实现了一个功能就是如果Lingoes已经打开了,则激活它,如果没有打开,则打开。
最后一个例子:
复制代码
代码如下:
WinStatus:=0
#m::
if WinStatus=0
{
WinMaximize , A
WinStatus:=1
}
else
{
WinRestore ,A
WinStatus:=0
}
return
实现的功能是按Windows+M则将当前窗口在最大化与正常窗口间切换。使用了变量WinStatus为记录窗口状态,不过这样做这个问题就是切换到另一个窗口去控制时,可能第一次按键无效。我没有找到相关的接口获得当前窗口的状态,如果有人知道更好的解决方案的话一定要告诉我,我的邮箱是hejw06@gmail.com。
最后,如果你还有不懂的地方,可以和我一起讨论,如果希望学到更深,了解更多AutoHotkey的用法,或者希望获得别人的写的代码,可以去AutoHotkey的官方bbs: http://ahk.5d6d.com/bbs.php
autohotkey多开游戏窗口改名
1、可以使用MicrosoftAppLocale软件更改游戏窗口名字。2、选择想要更改名字的游戏窗口吗,鼠标右键点击会弹出对话框,选择重命名更改即可。3、以上就是autohotkey多开游戏窗口改名的方法。
autohotkey安装时提示template.ahk拒绝访问
1、打开控制面板选择系统和安全。2、选择Windows防火墙。3、点击右侧的打开或关闭Windows防火墙。4、关闭Windows防火墙后点确定关闭当前窗口即可。
AutoIt 与 AutoHotkey 有何异同?是选择前者还是后者?
我是先接触AutoIt的,但时间还不算久。我看了一些介绍, AutoHotkey 是从AutoIt分支出来的,部分开发人员是原来AutoIt的开发人员,这两者有许多方面非常相似,我也看了两者的帮助,确实如此,目前我认为比较不一样的就是AutoIt所用的语言类VB,而AutoHotkey 所用的语言类C++或JAVA。 实际上我比较熟悉的是...
如何使用autohotkey打开chrome
方法\/步骤 1、打开“AutoScriptWriter”(可以在AutoHotKey 懒人包中找到) 2、点击“record”开始录制,并执行你需要的操作。 3、执行完之后就,点击“stop”,停止录制,AutoScriptWriter就会自动生成脚本代码。 4、复制生成的代码,并生成.ahk文件 5、打开...
Autohotkey v2 获取当前时间戳函数的实现 ahk所有关于时间的操作总结...
获取当前时间戳,ahk没有提供一个默认的函数,其实实现起来也不是很难 unix时间戳实际上是1970年1月1日 0点准点的时间到当前时间(UTC时区)的秒数。也有毫秒级的时间戳,但是一般的应用场景,秒就够用了。autohotkey 关于时间格式化的函数FormatTime都提供了,竟然就没有一个直接获取时间戳的,也是挺...
AutoHotKey怎么编译成EXE文件
AutoHotKey软件有一个工具Ahk2Exe.exe,这种工具可以把AutoHotKey脚本编译成EXE文件。Source选择ahk脚本文件,Destination为输出的exe文件。还可以通过Custom Icon设置EXE文件的图标。
如何用AutoHotKey运行Edge浏览器
一键打开一个隐私窗口,干嘛用,你都知道哈!Run, cmd.exe \/c start shell:AppsFolder\\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge about:inprivate ;打开为隐私窗口 好啦做个总结,运行个edge挺费劲哈!本文来至AutoHotKey中文网,地址:https:\/\/www.autoahk.com\/archives\/15535 ...
autohotkey怎么不能运行脚本啊
您好,是这样的,如果您下载的是绿色版,需要添加文件关联的(即打开方式指向autohotkey.exe)。程序默认的示例脚本是需要按快捷键才能触发的,详见下方:z::Run www.autohotkey.com ;徽标键+z打开ahk网址^!n:: ;Ctrl+Alt+n触发IfWinExist Untitled - Notepad ;如果存在“Untitled - Notepad”标题的...
pyautogui 与 autohotkey 哪个强大一些
语言设计上明显 autoit 更好,不过 ahk 更普及,脚本更好找,目前加入了 OO ,能力不相上下了。ahk 开源,还有一些黑科技,比如使用单个 modifier 键控制。总体还是看个人喜好, pyautogui 我没用过,不了解。
如何学习 AutoHotkey
对于学习脚本,对学习的方法我有几个建议:如果目的是希望实现某种具体操作,则从写这个脚本开始,边看帮助边修改边学习,建议选取自己需要却又较简单的操作开始;如果不是,则可从录制器开始,先录制操作代码边看边学习,对于 AutoHotkey 我建议使用 Pulover's Macro Creator(成熟且功能强大的录制器);...
冷卫葡萄: AutoHotkey 是一款免费的、Windows平台下开放源代码的热键脚本语言.有了它,您就可以: 通过发送键盘或鼠标的键击动作命令来实现几乎所有操作的自动化.您可以自己编写 宏 或者使用宏录制器来生成; 为键盘,游戏操纵杆和鼠标创建 ...
东丽区13464619973: 求autohotkey的一个脚本,自动放技能的脚本!!! - ?
冷卫葡萄: #z::;设定Win+z执行 Loop {;循环 Send, i ;^ Control ! Alt + Shift 比如 ^!s 是Ctrl+Alt+s Loop { ImageSearch, tupian_x, tupian_y, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, %A_ScriptDir%\你的图片.bmp if Errorlevel ——{ ——;MouseClick,...
东丽区13464619973: 如何自定义电脑快捷键,录制脚本 - ?
冷卫葡萄: 下载后解压即可,autohotkey会自动识别.ahk后缀的文档,所以新建一个txt文件,更改后缀为ahk即可作为您的快捷键包(绿色版需设置默认autohotkey打开).以下是常见的使用场景: 场景1:替换内容,点一两个按键就能替换任何常用内容 :...
东丽区13464619973: 求一个AutoHotkey脚本,意思是首先执行一次a键,等待1秒执行一次b键,等待1秒后无限循环c键! - ?
冷卫葡萄: 职业人 所谓职业人就是参与社会分工,自身具备一定的专业知识、技能和素质等,并能够通过为社会创造物质财富和精神财富...
东丽区13464619973: 求一个autohotkey定时按键脚本 - ?
冷卫葡萄: 首先说明一下你发的Enter是被当作文本处理了,应该有个大括号{},比如 send {Enter} 对于使用send命令的语句无法实现后台操作,只能适合当前激活的窗口. 使用controlsend可实现后台操作【具体用法可参考中文帮助文件】. SetTitleMatchMode, 2 loop { pause controlsend,,{enter},ROA Online sleep,120000 }F10:: pause return
东丽区13464619973: 求一个autohotkey后台脚本 - ?
冷卫葡萄: #Persistent#NoEnv SetTitleMatchMode, 1 v_Enable = 0 ^!F12::{ v_Enable := !v_Enable If (v_Enable = 0)SetTimer, getTournamentHistory, OffElseSetTimer, Jian3, 100 } Return Jian3:{ ControlSend, , 1, 剑侠情缘网络版叁, , ,};Ctrl+Alt+F12开关,试下吧,应该能用
东丽区13464619973: 求一个简单的AUTOHOTKEY脚本 - ?
冷卫葡萄: MButton::Send,j SetTimer,MBk,-1000 KeyWait,MButton,Up SetTimer,MBk,Off SetTimer,MBl,Off SetTimer,MBu,Off Return MBk:Send,k SetTimer,MBl,-1000 Return MBl:Send,l SetTimer,MBu,-1000 Return MBu:Send,u Return ; 可以适当在每个按键后加上点延时命令 比如:Send,l Sleep,100
东丽区13464619973: 求一个autohotkey 脚本 对所有窗口发送指令 一直按 4 号键 每隔30秒按1 每隔10秒按2 - ?
冷卫葡萄: 给你一个思路,使用LOOP循环,每0.1秒一次 并计数,每次发送4 然后300次的时候发送1100次的时候发送2 获取所有窗口使用WinGet 代码类似下面 js = 0 Loop { js := js + 1 WinGet, id, list,天谕-无束缚3D幻想网游 Loop, %id% { send, 4 } if mod(js, 100) == 0 { Loop, %id% { send, 2 } if mod(js, 300) == 0 { Loop, %id% { send, 1 } } } sleep, 100 }我没有测试
东丽区13464619973: 求autohotkey脚本按住一个键 不停输入按键12345 松开自动停止的脚本 谢谢了 - ?
冷卫葡萄: $CAPSLOCK:: ; Loop {if not GetKeyState("CAPSLOCK", "P") ; breakSend {F7} ; Send {F8} ; Send {F9} ; Send {F10} ; Send {F11} ; Send {F12} ; sleep 100 ; } Return 这是按caps lock键不停输入按键F7--F12键 松开自动停止的脚本,自己看着改吧.
东丽区13464619973: autohotkey怎么不能运行脚本啊 - ?
冷卫葡萄: 您好,是这样的,如果您下载的是绿色版,需要添加文件关联的(即打开方式指向autohotkey.exe).程序默认的示例脚本是需要按快捷键才能触发的,详见下方: #z::Run www.autohotkey.com ;徽标键+z打开ahk网址 ^!n:: ;Ctrl+Alt+n触发 IfWinExist Untitled - Notepad ;如果存在“Untitled - Notepad”标题的窗口 WinActivate ;激活窗口 else ;否则 Run Notepad ;打开记事本 return ;返回 即结束该部分现在官方已经出了中文帮助手册,在官网下载页面“Other Downloads”下方.