- 浏览: 2059954 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (1409)
- asp/asp.net学习 (241)
- oracle (10)
- delphi (295)
- java (27)
- pb (1)
- 每日点滴 (49)
- 学习方法 (40)
- 思想方面 (104)
- C语言 (5)
- C++ (1)
- 代码重构经验 (5)
- 软件工程 (3)
- 数据库 (99)
- 英语学习 (3)
- mysql (1)
- 该关注的网站或者网页 (42)
- 总结 (7)
- 要去做的事情 (33)
- 算法 (1)
- 网络方面 (29)
- 随感 (96)
- 操作系统 (36)
- UML (12)
- 常用工具的使用 (55)
- 脚本 (7)
- 汇编 (62)
- 数据结构 (2)
- 财务 (38)
- 语文作文 (16)
- 法律 (1)
- 股票 (88)
最新评论
-
devwang_com:
可以,学习了~~
列出文件夹下所有文件夹的树形结构--Dos命令 tree的使用 -
hvang1988:
不管用啊 frxrprt1.PreviewForm.Pare ...
fastReport预览时嵌入到别的窗体 -
00915132:
我也有这个疑问,非常 感 谢
left join加上where条件的困惑 --SQL优化 -
zhuyoulong:
学习了,高效读书
软件架构师要读的书 -
nTalgar:
非常感谢分享!
Application.ProcessMessages用法:
翻译 :http://yonken.blogcn.com/diary,103098431.shtml
AutoHotkey官网:http://www.autohotkey.com/
转自:http://blog.csdn.net/vagrxie/archive/2009/10/21/4710832.aspx
Don’t Repeat yourself在编程领域成为DRY原则,是知道我们编写强壮代码的重要指导原则之一,但是,事实上在其他领域也是一样的(我也不知道此原则是否最先出现在编程领域)。Larry Wall的懒惰是程序员的美德的话我是记忆深刻。作为一个对计算机着迷,对程序无比投入的人,深知学海无涯,但是,正是因为学无止尽,更迫切的需要我们做追求效率的程序员,将重复的工作交给最擅长做重复工作的电脑去做,只有这样,我们才能将更多的时间节省下来,去干我们自己想干的事情。(虽然工作时不太可能-_-!但是起码能赢得一句手快的评价,再次-_-!)学习VIM,Bash,Python,Lua,Qt,SQL都是如此,在这条路上已经走了这么远的我们,又何惧为了更加提高效率,再多学AutoHotkey这样一个小工具呢?既然选择了远方,就只顾风雨兼程,既然选择了编程,就只能忘了远方。-_-!敲自己的键盘,让别人走路去吧。
AutoHotkey的名字大家说不上如雷贯耳,久仰大名,起码也是早有耳闻了吧。让我们不惧艰险(又是一种脚本语言-_-!)将AutoHotkey作为饭后甜点好好品尝一下吧吧^^
AutoHotkey是什么
AutoHotkey简单来说是一个附带键盘宏录制的脚本工具,但是因为功能太过强大了,叫做自动化工具也许较为合适。从自动化工作这一点来看,AutoHotkey类似Linux下的Bash,都不以脚本语言的逻辑表达能力取胜,专门针对自动化工作设计,只不过Bash是命令行下的,对窗口一无所知,而AutoHotkey可以说是专门针对Windows的窗口平台的,有对快捷键和窗口环境的强大支持。(我见人将其称作GUI-Scripting,实在贴切)也许可以说AutoHotkey就是GUI环境下的Bash。既然Linux下Bash是必学的(的确应该学),那么AutoHotkey也就顺面学了吧。
安装配置
下载安装我就不多说了,真的不知道这里有个地址可以去看看。善用佳软的AutoHotkey 0级教程,顺面推荐下善用佳软,推崇并介绍了很多好用的免费软件,个人很喜欢。
AutoHotkey的脚本是以ahk为后缀的文本文件,用你自己最喜欢的编辑器编辑吧,对于vim来说,已经内置了对ahk的语法高亮,我习惯将AutoHotkey的安装目录添加进环境的PATH中,这样用vim编辑脚本的时候可以直接简单的通过!Autohotkey %来运行脚本。(事实上我将其map到了F5上)但是愿意的话,其实.ahk文件在AutoHotkey安装后是与其关联的,直接双击也可以运行此脚本。
初步
首先编个最简单的脚本,看看效果先。
Run http://blog.csdn.net/vagrxie
将上一行的代码保存成文本,双击运行,或者用autohotkey运行之,会自动开启你机器上的默认浏览器登录我的博客,建议大家每天运行100次以上^^这个功能有点像Python的os模块的startfile函数,通过解析后面的字符串来判断应该使用什么与其关联的程序运行。当年工作的时候我有个开机脚本就是用Python此函数做的,功能就是开启工作需要的一大堆程序,VS,MSDN,TotalCommand自动一个一个开启并打开合适的工程或目录。现在这个功能也可以交由autohotkey来完成了。就是一条Run命名。
相对来说,对于特定用途的工具(比如Bash,autohotkey)来完成其擅长的事情是会比通用工具(比如Python)来的简洁的,此即一例,Python中虽然也能完成这样的工作(在没有学习Bash前,在linux下它都是我的脚本工具),但是,需要进行import模块,函数调用等一堆难看的东西,autohotkey只需要一个Run。这里之所以讲的多点,是想说明一个特定工具哪怕并不是完成了什么不可能完成的任务,也许仅仅是将任务完成的更加简洁高效和优雅,也是一个工具的用途体现。至于值不值得为了这份优雅付出学习的代价,那就见仁见智了。
再看个例子:
Run c:\DirTest.txt
此脚本会自动的用你机器配置的文本编辑器开启此文件。(文件必须存在)
但是以下脚本
Run notepad.exe c:\DirTest.txt
无论文件存在不存在都会开始记事本,其中的区别,大家自己体会一下。事实上解析的强度比一般人能够想象的还要厉害,帮助文件中有这个示例:
Run mailto:someone@somedomain.com
呵呵,什么意思大家都知道,牛吧。可惜我一般不用客户端写邮件-_-!
快捷键
AutoHotkey自然对Hotkey又特别支持啦,脚本中用符号表示快捷键,一次排列,几个常见的修饰键对应符号是#Win, !Alt,^Control,+Shift。那么什么叫依次排列呢?看下面的例子。
#space::Run http://blog.csdn.net/vagrxie
以上的例子即将Win + space 键设定为访问我的博客,运行后发现没有直接的反应,不像上述例子,此时AutoHotkey以trayicon小图标的形式运行于右下角,当你输入Win + space的时候会触发其运行默认的浏览器开启网站,并且一直有效,直到你将其关闭。(此例也推荐大家每日运行100遍^^与前面第一个例子结合交叉运行效果更佳)同理,要ctrl+space就是^space,要ctrl+alt+space就是^!space。
事实上,一个快捷键可以对应多个命令,也可以多个快捷键对应一个命令,格式有点不多,见下例。
#space::
Run http://blog.csdn.net/vagrxie
Run http://hi.csdn.net/vagrxie
return
#^a::
#^b::
Run http://blog.csdn.net/vagrxie
return
此例即是在按下Win + space时打开我的CSDN博客和空间两个网页,并且CTRL + WIN + A与CTRL + WIN + B都是打开我的博客。举这两个例子主要是告诉大家AutoHotkey的格式相对比较灵活,比如这里的一对多和多对一。当不是一对一并且写在一行时,需要以return来表示脚本的结束。
信息窗口
这也许是最先应该说的,MsgBox
MsgBox Text
即可以通过MessageBox弹出Text的信息,比较方便
可以通过MsgBox弹出Yes Or No等选项,并获取,以判断分支执行程序。
MsgBox, 4,?,Yes or No?
ifMsgBox Yes
MsgBox You Said Yes!
else
MsgBox You Said No?
分支执行的语法比较奇怪,通过if结合MsgBox构成一个IfMsgBox特别应对MsgBox的选择。
对窗口的控制
个人感觉,对窗口的控制是AutoHotkey的精髓所在,这也是为什么我将其比作GUI下的bash。这里我还是通过从简单到复杂的例子来描述。比如,我现在在编辑文档的时候常常会需要打开AutoHotkey的帮助文档查看,一般我的操作是用鼠标点击其最小化的窗口以激活,或者我也会需要开启gvim以编辑示例程序,也是需要用鼠标去激活,因为用atl+Tab的方式还不如用鼠标快,有了AutoHotkey,我们就有更方便的Hotkey去完成这样的任务了。
SetTitleMatchMode 2
#tab::
ifWinNotExist, GVIM
{
MsgBox GVIM is not running
return
}
IfWinNotActive,GVIM
WinActivate,GVIM
else
WinActivate,Windows Live Writer
return
如上脚本,先判断是否有标题包含GVIM的窗口存在,不存在则报告GVIM没有运行,不然WIN+TAB键的效果就是在GVim与Windows Live Writer之间切换,非常方便。ifWinNotExist如其名,用于判断一个窗口是否存在,ifWinNotActive也如其名用于判断一个窗口是否激活,第一个参数都是表示窗口标题文字的匹配,匹配模式由SetTitleMatchMode决定。
1: A window's title must start with the specified WinTitle to be a match.
2: A window's title can contain WinTitle anywhere inside it to be a match.
3: A window's title must exactly match WinTitle to be a match.
我们使用的是2,表示任意位置都匹配,默认是1,速度最快,必须是开始位置匹配。if一组的函数都还支持其他参数,具体的请查看帮助文档了,我这里主要是展示一下用途。
实际上AutoHotkey对窗口的控制还有很多强大的功能,一篇小文无法一一尽数,这里再举个例子:
SetTitleMatchMode 2
Loop, 10
{
Random, x, 0, 50
Random, y, 0, 50
WinMove,GVIM,, %x%, %y%
WinHide,GVIM
Sleep, 100
WinShow,GVIM
}
上述程序运行后,GVIM窗口会变的疯狂。。。WinMove,WinHide,WinShow的意思都很明显,分别是移动,隐藏,显示窗口,这里有两个有新意的地方,一个是Random和x,y,有点编程知识的人都看出来了,AutoHotkey是允许设定变量的,此处的x,y就是,引用变量的方式是前后各1个百分号,与windows批处理程序的一样。另外就是Loop,10表示的循环结构了。
操作记录器
这个功能有点像国内一个也比较强大的软件键盘精灵的功能(当年玩那种泡菜网络游戏没有少用过它,单纯的键盘鼠标模拟功能不比AutoHotkey差),就是将键盘鼠标操作记录下来,自动生成AutoHotkey的脚本。省去了重复工作的脚本编写之苦。带GUI界面,截图如下:
点击左上角的Record按钮就开始记录键盘鼠标的操作了。然后通过点击录制时屏幕左上角的Stop停止录制。上面的脚本是我录制的一段激活Windows live Writer和最小化Windows live Writer的过程。
WinWait, ,
IfWinNotActive, , , WinActivate, ,
WinWaitActive, ,
MouseClick, left, 1159, 889
Sleep, 100
WinWait, xfsdlaf.ahk (E:\work) - GVIM,
IfWinNotActive, xfsdlaf.ahk (E:\work) - GVIM, , WinActivate, xfsdlaf.ahk (E:\work) - GVIM,
WinWaitActive, xfsdlaf.ahk (E:\work) - GVIM,
MouseClick, left, 908, 17
Sleep, 100
WinWait, ,
IfWinNotActive, , , WinActivate, ,
WinWaitActive, ,
MouseClick, left, 33216, 32891
Sleep, 100
WinWait, Don’t Repeat yourself 懒惰是程序员的美德 AutoHotkey 尝鲜 - Windows Live Writer,
IfWinNotActive, Don’t Repeat yourself 懒惰是程序员的美德 AutoHotkey 尝鲜 - Windows Live Writer, , WinActivate, Don’t Repeat yourself 懒惰是程序员的美德 AutoHotkey 尝鲜 - Windows Live Writer,
WinWaitActive, Don’t Repeat yourself 懒惰是程序员的美德 AutoHotkey 尝鲜 - Windows Live Writer,
MouseClick, left, 1362, 10
Sleep, 100
MouseClick, left, 1387, 10
Sleep, 100
会发现自动生成的代码较人工的代码还是乱了很多-_-!机器嘛,不是那么聪明。上面代码很重要的一个就是通过MouseClick来模拟鼠标的点击,有了这个功能,想干什么都可以了………………顺面提及一下,也可以通过
Send Keys
SendRaw Keys
SendInput Keys
SendPlay Keys
SendEvent Keys
来模拟键盘的输入。下面是一个当你暂时离开机器却有不想锁屏时可以提出警告的脚本。:)
SetTitleMatchMode 2
SetKeyDelay 50
Words = WARNING{!} DO NOT OPERATE MY COMPUTER{!}
KeyWait, LButton, D
run,gvim YouAreUnderMonitored,,Max
WinWait,YouAreUnderMonitored
Send i%Words%{Esc}
此脚本等待鼠标左键单击,然后自动开启gvim并最大化,然后一个字一个字输入警告信息^^不明就里的人一看估计碰鬼了。
小结
对于AutoHotkey这样强大的东西,一篇3000来字的小文实在是无法详细尽数其功能,而本人的目的也就是提供给觉得AutoHotKey复杂而不去学习的人尝个鲜,知道了AutoHotkey没有那么难以后,伴随着使用,参考着帮助文档,慢慢的会发现AutoHotkey也是一个离不开的工具了。我就在网上看到很多人狂喊,Linux下什么都好,就是没有AutoHotkey-_-!(其实类似的言论非常多,比如也没有Windows Live Writer equivalent)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/vagrxie/archive/2009/10/21/4710832.aspx
发表评论
-
效率提升10倍的Google知性生产技巧--胜间和代
2010-09-25 18:19 13092010-9-25 1.建议四 ... -
查找和替换 真的是好用
2010-08-16 14:57 892查找和替换 真的是好用 ---可以节省好多时间啊 ... -
(转)[个人管理]一位技术人员成长的烦恼及我的分析
2010-08-09 18:29 1071吾阅:深有感触,常整理及思考;--Borland传奇的作 ... -
分析方法--FMEA,6sigma,脑力激荡法
2010-07-29 10:43 954待查 摘自网友(qq691733270): 分 ... -
我国有几个省--很好的记忆方法
2010-07-27 07:03 1303摘自:http://iask.sina.com.cn/b ... -
《高效学习方法与技巧培训》
2010-07-24 21:21 1108吾阅:目前存在问题:太容易相信人,没有对别人给的信息进 ... -
日本教育家多湖辉的《学生用功术》---2
2010-06-28 08:25 1760转自 ... -
日本教育家多湖辉的《学生用功术》 (1)
2010-06-28 08:23 2151转自:http://bbs.spthome.com ... -
七年IT经验的七个总结
2010-06-28 07:57 994吾阅:很赞成 学历代表过去,能力代表现在,自学能力 ... -
(转)看图说话:如何高效地工作、学习及阅读?
2010-06-28 07:36 946转自:http://zwchen.it ... -
网络阅读,为什么人会浮躁?
2010-06-28 07:06 1046吾阅: 问自己四个问题:这篇微博说了什么?怎么说的?说得 ... -
合格程序员每天每周每月每年应该做的事
2010-06-24 17:11 890吾阅:部分同意,只 ... -
阅读电子书的一些经验---笑来
2010-06-24 14:12 1072吾阅:笑来老师从小就做卡片,进行笔记记录(有个做副馆长的 ... -
《关于书的书》---读书方法
2010-06-10 16:11 1060《关于书的书》---读书方法 1. ... -
管理起自己的知识
2010-06-04 13:49 972摘自:http://wenku.baidu.com/vi ... -
揭秘:成为最牛程序员的五大要诀
2010-06-04 13:35 824读后感:建立属于你自己的资源库--- 这点最重要; ... -
好工具--加快效率
2010-05-10 11:35 1458转自:http://blog.csdn.n ... -
你的灯亮着吗?
2010-05-05 21:56 940你的灯亮着吗? P13问题其实就是 ... -
做真正重要的事
2010-03-21 21:53 931转自:http://www.mifengtd.cn ... -
如何制定计划
2010-03-21 17:44 1449转自:http://www.21days.cn/stor ...
相关推荐
window AutoHotkey中文版热键下载window AutoHotkey中文版热键下载window AutoHotkey中文版热键下载window AutoHotkey中文版热键下载window AutoHotkey中文版热键下载window AutoHotkey中文版热键下载window AutoHot...
最后,文档中的API参考部分详细列出了所有内置函数和命令,以及它们的参数、返回值和使用示例,这是编写AutoHotkey脚本的重要参考资料。 总的来说,“AutoHotkey中文帮助文档.7z”是一个全面的资源库,对于任何想要...
这个“AutoHotKey帮助文档【部分汉化】”是AutoHotKey中文论坛社区成员的努力成果,旨在为中文用户提供更易理解的使用指南。 1. **AutoHotKey基础** - **脚本语言**:AutoHotKey基于自己的脚本语言,它简洁且易于...
这是一段 AutoHotKey 脚本, 用来模拟 windows 7 的窗口拖拽操作: * 拖拽到屏幕顶端, 最大化; * 拖拽到屏幕左/右侧, 占据...资源包中有 autohotkey 脚本源文件和编译好的 exe 文件, 没有 autohotkey 软件也可以运行.
下面是 Autohotkey 的安装和使用指南。 安装 Autohotkey 1. 首先,下载 Autohotkey 的安装文件 AutoHotkey104805_Install.exe,然后双击该文件以开始安装。 2. 在授权页面中,可以检查 Autohotkey 的授权协议,...
4. **窗口控制(Window Manipulation)**:AutoHotkey能够识别和控制窗口,包括最小化、最大化、移动、隐藏、显示窗口等。这对于多任务处理和窗口管理非常有用。 **ahkscripts-main内容可能包括** 在"ahkscripts-...
Hide Window Hotkey(隐藏窗口热键)是隐藏程序窗口的一个实用软件,能通过鼠标或键盘立即隐藏全部或部分程序窗口。它同样能自动按规则调整你的程序窗口,比如最大化、最小化、正常或是最小化到系统栏。 提示: 配合...
AutoHotkey - Tiling Window Manager for Windows - 键盘代替鼠标 - 让所有 Windows 桌面程序拥有 Vim 操作风格的辅助工具 - - VimifiedExplorer is an AHK script that provides vim/vifm like bindings for ...
PoE_MultiScript 需要 Autohotkey 才能运行 安装的 Autohotkey 应该是 Unicode x32 版本。 ================================================== ================== 热键: [F1] --- 使用重新同步命令。 [F2] --- ...
要运行脚本版本,您将需要安装AutoHotkey 。 循环的数量取决于您要喝多少啤酒。 该程序已经设置为叶子爱好者特别版。 如果要更改它,您将必须打开window spy(一个已经与Auto Hot Key捆绑在一起的程序),然后将...
.ahk-wt-快捷方式通过键盘快捷键启动各种Windows终端配置文件的Autohotkey脚本。 通常在这里是因为当我不可避免地忘记它时,请重新安装Windows,并记得在硬盘擦拭完成时将其备份。 为什么要使用AHK脚本而不是Window...
因为有需求,懒, 到网上找切换鼠标左右键便捷小工具, 之后心间不是很好, 写了这个小程序后, 心情好一点了。 源码下面几行: #include int main(int argc, char*argv[]){ if(::SwapMouseButton(true)){ ...
- Please hold the Shift key down when clicking to have MetaProducts Download Express ignore a link. Mozilla FireFox 1.x - 2.x, Netscape 8.x, SeaMonkey, Flock browsers plug-in Click here to download ...
这可能是一款实用程序,如AutoHotkey(用于创建自定义快捷键和脚本)或者PowerShell(用于更强大的命令行操作),也可能是某种编程接口,如Windows API,允许开发者直接与窗口交互。 标签“界面相关类”暗示了这个...
AutoHotKey was developed from AutoIT and so scripts are nearly the same. Drag the compiled *.exe or *.a3x into the AutoIT Script Decompiler textbox. To copy text or to enlarge the log window double ...
FastReport® provides all the tools necessary for developing reports, including a visual report designer, a reporting core, and a preview window. It can be used in Embarcadero (ex Borland and ...
这是使用AutoHotkey编写的宏,它允许玩家/用户自动完成特定任务的无聊过程 免责声明 自动化软件和宏的使用与游戏的服务条款背道而驰。 尽管被禁止使用此宏的可能性极小,但请注意,风险仍然存在。 您应对自己的行为...
- Added a hot Key, F4, to set the auto run flag and run the tests (i.e. set "-r" and then run the tests). - Other minor changes. Release 5.3 build 1018 WIN32 release 16 April 2008 - Added an ...
编写autohotkey小代码时,有时需要用到window spy工具,自带的不怎么好用。 看到网上用这个测试菜单类的AutomationId属性,然后使用,效果比较好。
4. **编程实现**:对于高级用户,可以通过编写批处理脚本或使用VBScript、AutoHotkey等自动化工具,定义特定的快捷键来实现程序的隐藏和显示。例如,用AutoHotkey可以编写如下脚本: ``` #h:: ; Win+H 作为隐藏...