合理使用AutoHotkey+StrokeIt

xbeta注:在追求操作快捷与自动化的路上,有3款软件不得不提:超小的快捷键神兵hoekey,超小的鼠标手势之王StrokeIt,此外还有更富扩展性的AutoHotkey。前二者长于调用,而后者则强于功能。将两类软件结合在一起,双剑合璧,会有何等效果呢?且看dyseat网友的做法!

下文转载自dyseat文章,xbeta略有修改。

工作中总是有一些重复的动作要做。操作的次数多了,就想找点自动完成之类的东西。找来找去,选中了Autohotkey。虽然内存占用比hoekey大了一点点,不过功能比hoekey要多一些,可完成的动作也要多一些。相比之下,还是可以接受的。

我的Autohotkey的ini文件所有动作全是自己做成的,一般来说分两部分:输出字段、实现动作。

1. 输出字段:让AHK自动输出日期时间

工作中,经常会遇到需要输入当前系统时间的情况。你会怎么做呢? ① 数字键直接输入:这是最简洁的办法,但也是最低效的。 ② 输入法:目前多数输入法都支持输入当前(或指定)日期,并支持不同格式。但对于同时使用多种输入法的朋友来说,要保持一致的体验,并非易事——比如,要输入当前日期,有的输入法要键入dqrq,有的则要键入date。笔者经常使用中英日3种输入法,根本就放弃了这一想法。 ③ AutoHotkey输入:虽然要编写代码,但输出格式、触发方式可完全自定义,也超越了输入法的限制。代码如下:

代码示例1:按下 /dd ,输出 YYYY-MM-DD HH:MM:SS

::/dd:: d = %A_YYYY%-%A_MM%-%A_DD% %A_Hour%:%A_Min%:%A_Sec% clipboard = %d% Send ^v return

代码示例2:按 /rs 输出 MMDD

::/rs:: d = %A_MM%%A_DD% clipboard = %d% Send ^v return

2. AHK实现动作

目前为止,只写了一个,是用来控制becky的。因为工作都是用mail联系的,平均一天要收50+的mail。所以经常要打开、最小化becky。一天重复N次,虽然说不麻烦,也都只是鼠标点一下。不过要移动鼠标到特定的点进行点击,所以还是要浪费一些脑细胞的。所以写了这个东西,检查becky是否打开。如果没有就打开,如果打开就判断是否激活;如果没有就激活,如果已经激活就最小化。好像QQ的Ctrl+Alt+Z 功能一样,而且比那个功能还好。按一下出来,再按一下还能回去!方便啊!

代码如下:

^!#a:: IfWinNotExist, xxxxx - Becky! ;判断becky是否启动 Run,c:\SystemTools\Becky_jp\B2.exe ;没启动则启动becky Else { IfWinActive, xxxxx - Becky! ;启动的话则判断becky窗口是否激活 WinMinimize, ;激活的话就最小化 Else WinActivate, ;没激活的话就激活 } return

3. 让 StrokeIt 调用 AHK

本来用上面这些就应该差不多了........ 不过既然已经懒了就想更懒点.... 这个还是要点键盘的.....而有的时候如果手不在键盘上就要挪过来然后点然后在挪回去这个...... 对懒人来说是无法忍受的. 还好还好鼠标几乎是不离手的恩.....那当然是立刻想到用StrokeIt了.

其实StrokeIt本身也有一些不错的功能的不过毕竟还是有限的哪有AHK强大我现在的做法是能用StrokeIt本身功能的就用不能用的就写到AHK里然后用StrokeIt调用AHK的快捷键这样一来.....真的是方便啊.....

经过如下配置: StrokeIt调用AHK

最终效果是: - 鼠标右下一拉 becky显示 再右下一拉 becky隐藏 - 向右一拉 输出 MMDD - 拉个D 输出 YYYY-MM-DD HH:MM:SS - 向左下拉 当前窗口最小化 - 向右上拉 显示刚才最小化的那个窗口 (我是用他调用 Alt+Shift+Tab 来做到的) - 还有一些....是定义在特定窗口里的... 而且这样用还有一个好处:想用鼠标调用就用鼠标调用,不想用鼠标调用,也可以直接用键盘调AHK。两边都不影响。(正文完)

附2:更新历史 2011-04-11:更新图片;解释输出日期为什么没用输入法。>