Autohotkey学习笔记

转自:http://www.cr173.com/html/11162_1.html

AutoHotkey是一个神奇的工具。为了便于新人上手,xbeta写了此篇最最傻瓜的0级入门教程。

1 何为AutoHotkey
AutoHotkey是一个小工具软件,可以简化你的重复性工作。
比如要登录某论坛,你只要按一个键,AutoHotkey就会替你:打开浏览器、输入网址、输入用户名和密码、回车,完成登录过程。
只要有想像力,AutoHotkey可以完成更多工作,参见 AutoHotkey,让win+run如虎添翼,及更多文章。

2 下载及安装
软件名称: AutoHotkey
软件版本: 1.0.96.00
软件大小: 2.5MB
软件授权: 免费、开源
适用平台: Windows 98-Win7
下载地址:点击这里下载

安装:按提示操作即可。我习惯上装在 d:\program files\AutoHotkey
第1屏是欢迎;点Next。
第2屏是版权声明;点I Agree。
第3屏是版本选择,可根据操作系统、需求,选择合适版本。比如我在WinXP下选择了 Unicode(32-bit)。

第4屏是安装内容:如下图。建议全部选中。

接下来是安装目录、开始菜单设置、安装过程。
最后,是安装成功提示:是否看帮助文件。AutoHotkey的帮助文件,写得很细。有耐心的就认真拜读,想成高手的必须要研读。(更多中文译本见这里)

3 应用例1:提示与访问网页

创建脚本文件

如下图,打开你的文本编辑器(notepad、或gVIM),新建一个文件,把下两行内容复制进去。

msgbox, 这是我的第一个AutoHotkey脚本 `n 我既关注效率,也尊重版权
run, http://xbeta.info/autohotkey-guide.htm

先任意保存到一个地方(比如桌面),文件名任意(比如 new.ahk)
注意:①文件名后辍必须为ahk;②保存格式必须选为 UTF-8!。

运行脚本文件

这时,双击new.ahk看到效果了:
先弹出如下提醒

你点击“确定”按钮后,就会启动浏览器,打开本文网址。

原理解释
所谓脚本,其实就是一个txt文件。它由用户编写,由AutoHotkey来执行。
第1句:msgbox是一个命令(或称为函数),AutoHotkey见到它,就知道要弹出一个消息窗口了。后面的文字是参数,在这一命令中,就是弹出消息的文字。其中的`n表示换行。中间用半角逗号分隔。
第2句:类似,函数是run,就是运行。后面的参数就是本文的url。也就是说,AutoHotkey的run功能,可以运行程序,也可以打开文档(如 d:\freeware-list.txt),也可以打开网址。

4 应用例2:缩写

将下面的语句保存为 new2.ahk (提醒 UTF-8 编码):

::test1:: 善用佳软。ひらがな 平仮名;カタカナ 片仮名。Korean/한국어/조선말。

运行后,在任何能正常显示 unicode 字符的程序中(比如浏览器的地址栏、MS Word),键入 test1后,再加空格、或tab、或回车,就可以触发缩写,“善用佳软……”内容就上屏了。

通过这一例子,可以看到 AutoHotkey 实现常用短语(地址、邮箱、密码、网址、签名)的缩写非常方便。
关于缩写功能,还有人用 AutoHotkey 开发过一款专门用于缩写功能的Texter呢,详见这里。

5 自动登录网站

将下面的语句保存为 new3.ahk (提醒 UTF-8 编码):

#1::
run, http://mail.163.com
WinWaitActive, 网易 ;;等待网页加载成功(至少title显示出来)
sleep, 1000 ;;保险起见,再等1秒(视网速而定)
send, user-id{tab}password{enter};;模拟键入用户名、密码、回车
return

运行脚本……但没有反应?没错,这是因为脚本中为相应命令定义了热键。#1表示Win+1键。
按下Win+1键,脚本会自动打开163信箱、输入用户名、密码,完成登录。

注意:本例有实际执行中有可能不成功。因为邮箱登录页面可能已经保存了用户名,甚至也保存了密码,导致初始输入焦点不准确。笔者实际在用的例子是登录Lotus Notes客户端,并输入密码。代码如下:

#n::
run, "c:\Program Files\lotus\notes\nlnotes.exe"
winwait,,输入口令
sendinput, mypassword{enter}
return

6 后记

作为0级入门教程,就写到这里吧。只要大家边读、边动手实践,就不难从这些例子中发现 AutoHotkey 的神奇作用。

如要再进步发掘 AutoHotkey 的魔力,可以:
(1)阅读官方帮助文档。
(2)参见笔者使用AutoHotkey的更多实例,AutoHotkey|win run加它更方便,AutoIT3 vs AutoHotkey,AutoHotkey调用Irfanview把24位真彩图片优化到实际色深等。
(3)目前最全面的AutoHotkey学习资料,由 amnesiac 整理:AutoHotkey 学习指南

注:xbeta用gVIM编辑ahk文件的,高亮效果如下:

 

 

转自:http://jixiuf.github.com/autohotkey/AutoHotKey_1.html

hotString 别名:

AutoHotKey 称之为hotStrings ,我叫它别名,叫缩写也可以
比如下面的几个例子
以第一个
::btw::by the way
为例 不论在什么地方,当你输入btw然后回车或空格或TAB之后,它会自动扩展为后
面的字符串by the way剩下的几个是公司几个同事的Ip地址,我访问他们的共享文件
时,只需要输入前面几个字母就可以了,而不用输入难记的IP.


::btw::by the way
::liuxjs::\\172.20.68.32
::lihts::\\172.20.68.55
::wanglins::\\172.20.68.51
::wangls::\\172.20.68.51
::kanban::http://172.20.68.243:8080

简单的键绑定

"#"表示Windows键
"^"表示Cntrl键
"!"表示Alt,
"+"表示Shift键。


详细内容看官网hotkey


Ctrl+鼠标中键关闭窗口,


^MButton::
    SendInput {Alt Down}{F4}{Alt Up}
Return
你不必把鼠标移动到窗口右上方的关闭按钮,按下鼠标后然后鼠标中键点选窗口,就会
关闭当前窗口。
原理很简单,就是简单的模拟你按下Alt+F4,的操作,其实不必像上面那么复杂


^MButton::
    SendInput !{F4}
Return
例如:我想让

Win+Esc 关闭当前窗口:


;;我习惯于Win+Esc 关闭窗口,而不是Alt+F4
#Esc::Send !{F4}
Send 和SendInput ,都是模拟用户按下键盘的函数
进行按键绑定 ,一般是“按键名称”后跟两个冒号,然后是你要进行的操作
如果只有一句,写在同一行,可以不写"return" ,否则得写return 表示到此结束。



在资源管理器中,一键显隐隐藏文件


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;在资源管理器中,在隐与不隐间切换(隐藏文件)
;;主要通过修改注册表
(这一个在Xp下有用,在其他版的可能无用,这个功能网上流传的很广泛)
这里只是定义一个函数,将它与按键绑定即可。
toggle_hide_file_in_explore(){

;------------------------------------------------------------------------
; Show hidden folders and files in Windows XP
;------------------------------------------------------------------------
; User Key: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
; Value Name: Hidden
; Data Type: REG_DWORD (DWORD Value)
; Value Data: (1 = show hidden, 2 = do not show)
RegRead, ShowHidden_Status, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, Hidden
if ShowHidden_Status = 2
  RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, Hidden, 1
Else
  RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, Hidden, 2
WinGetClass, CabinetWClass
PostMessage, 0x111, 28931,,, A
Return
}
比如把上面的函数绑定为 Ctrl+Alt+h


^!h::toggle_hide_file_in_explore()
但是,上面有一个问题,如果当前窗口不是资源管理器,它依然会调用这个函数,虽
然不会造成什么恶果,但是原本这个程序的Ctrl+alt+h 也绑定了一个功能的话,
这个功能就没法被调用到了,因为它被AutoHotKey 拦截到了。解决办法就是只在资源
管理器中启用这个键绑定。


代码如下
SetTitleMatchMode Regex ;可以使用正则表达式对标题进行匹配
#IfWinActive ahk_class ExploreWClass|CabinetWClass
^!h::toggle_hide_file_in_explore()
#IfWinActive

表示如果当前激活的窗口是"我的电脑"或者"我的文档"的话,就进行下面的操作。如
果不是,就不进行。#IfWinActive是一个结束标志,跟
#IfWinActive ahk class ExploreWClass|CabinetWClass 相对应。
IfWinActive/IfWinExists 内容在这。 它是判断“符合某些条件”的“窗口”是否存有的一个
函数。它可以通过窗口标题是否含有特定的字符串,来判断。
如果你用的是英文版的Windows 的话,


IfWinExist Untitled - Notepad
^h::Send , hello
#IfWinActive
这段代码 当你在新打开的记事本(也就是标题正好是“Untitled - Notepad”的窗
口,不能多一个字也不能少一个字)按Ctrl+h ,的时候,会在其中插入"hello"这个单
词。依照正常人的思维,在中文系统里,相应的代码是


IfWinExist 无标题 - 记事本
^h::Send , hello
#IfWinActive
但是,AutoHotKey 对中文虽然支持,但支持的并不好。比如这个地方,中文就不好用。
刚才,进行窗口标题匹配的时候,要求整个标题必须完全匹配。,也可以做到只匹配
标题的一部分,
通过这个命令 SetTitleMatchMode 事先进行设置
比如:


SetTitleMatchMode 2
; OR:
SetTitleMatchMode RegEx
可以有 1 2 3 Fast Slow ,RegEx ,六种值

  • 1: 表示前端匹配,
  • 2: 表示部分匹配
  • 3: 表示完全匹配
  • RegEx:表示使用正则表达式进行匹配


SetTitleMatchMode 2
IfWinExist  Notepad
^h::Send , hello
#IfWinActive
这个只需要标题中含有Notepad这几个字就可以。
一个窗口,除了可以用标题进行匹配之外,还可以用窗口所具有的其他属性来匹配
比如window ID ,Window Class ,进程ID. 最常用的一个就是Window Class
但是怎样知道一个窗口的window class 是什么呢? AutoHotkey 提供了一个工具
“Window Spy”,运行这个工具,然后用鼠标点选目标窗口,就会出现这个窗口的一些
可用信息。包括window class .
比如这张图是鼠标点选“我的电脑”中地址栏后 的探测结果 ../img/autohotkey_winspy.JPG
红色的圈起来的是“我的电脑 ”的window class .


#IfWinActive ahk_class ExploreWClass
只在"我的电脑"中起作用的代码写在这里
#IfWinActive

SetTitleMatchMode Regex ;可以使用正则表达式对标题进行匹配
#IfWinActive ahk_class ExploreWClass|CabinetWClass
  "我的电脑" 有“我的文档” 中起作用的代码写在这里
#IfWinActive

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
简介   AutoHotkey 是一款免费的、Windows平台下开放源代码的热键脚本语言。 编辑本段 功能   通过发送键盘或鼠标的键击动作命令来实现几乎所有操作的自动化。您可以自己编写 宏 或者使用宏录制器来生成;   为键盘,游戏操纵杆和鼠标创建 热键。 事实上任何的按键、按钮或组合键都可以被设置为热键;   当键入您自定义的缩写时可以 扩展缩写。例如, 键入“btw”就可以自动扩展为“by the way”;   创建自定义的数据输入表格、用户界面、菜单等。详情请看 图形界面 部分;   映射 键盘、游戏操纵杆和鼠标上的按键或按钮;   运行现有的AutoIt v2脚本并用 新功能 来增强它们;   将脚本文件编译 成EXE可执行文件,使得程序在没有安装AutoHotkey的机器上得以运行;   借助 相关工具 以实现更强大的功能。   更多关于热键的说明   AutoHotkey 可令键盘、游戏操纵杆和鼠标的所有潜能都发挥出来。例如,除了典型的Control、Alt和Shift键之外,你还可以定义Win键(徽标键)和Capslock键作为调节键。 而实际上你还可以设置任意的键盘按键或鼠标按键作为调节键。详细内容请看 高级热键 部分。   其他功能   调节音量、设置静音,以及其他 关于声卡的设置;   令指定窗口变为 透明,顶层窗口,或改变 外形;   用 游戏操纵杆 或 键盘 代替鼠标;   监控 您的系统。例如,当您不希望见到的窗口出现时自动关闭它们;   获取并改变 剪贴板的内容, 包括从资源管理器中复制的文件的名称;   关闭或屏蔽 Windows自有的快捷键,例如Win+E和Win+R;   取替Alt-Tab (通过按键、鼠标滚轮或按钮)从而减轻RSI(肢体重复性劳损 );   使用您喜欢的图标、工具提示(ToolTip)、菜单项目和子菜单来自定义 托盘图标菜单 ;   显示 对话框、工具提示(Tooltips)、气球提示 以及 弹出菜单,与用户交互;   执行脚本动作来 响应 系统关闭或注销;   检测系统 空闲时间。例如, 在系统空闲的时候执行高CPU负荷的任务;   通过检测 图像 和 象素色彩来自动执行游戏中的动作;   读取、写入 以及 解释 文本文件比起其他语言更容易;   针对一组与 通配符 匹配的文件进行操作;   可对 注册表 和 INI文件 进行操作。   在 Windows 95/98/Me 下的一些限制:   一些 高级功能 -- 例如鼠标热键和 热字串 -- 在Win9x 平台将失效。   你只要有想像力,它可以完成更多工作。
AutoHotkey是一种自定义快捷键和自动化脚本的工具。通过双击AutoHotkey.exe运行AutoHotkey程序,并可以将其发送为桌面快捷方式,方便使用。 AutoHotkey可以实现连击、双击、重复按键等功能。这个工具可以使用autohotkeySciTE4AutoHotkey-Plus编辑器进行编写,但这不是必需的。如果您打算长期使用AutoHotkey,可以考虑使用这个编辑器。 通过AutoHotkey,您可以自定义快捷键,以方便您在计算机上快速执行特定的操作。同时,通过AutoHotkey,您还可以通过字母缩写打出一连串的句子,提高工作效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【笔记09】AutoHotkey 基础教程](https://blog.csdn.net/m0_54189068/article/details/125929258)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [autoHotkey — 连击/双击/重复 按键触发](https://blog.csdn.net/scy261983626/article/details/122852742)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值