为 AutoHotKey 做点事

71
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes)
Loading...

响应善用佳软的号召,写点乱七八糟的。

特别提示:本文比较长,比较啰嗦,比较愤青。对 AutoHotKey 没兴趣的众友请尽情无视鄙视。

xbeta 是这样写滴:

从现在( 2008-07-23 )起,拿出一些时间,为 AutoHotkey 做点事。

1. 参与文档翻译:限于时间,只翻译一篇,已完成。
2. 推动专版建立:争取在国内较有影响的软件论坛,建立 AutoHotkey 专版。目前与深度论坛 /Deepin 联系中。
3. 如果条件成熟,推动 AutoHotkey 中文网站 / 社区的建立。
4. 写几篇高质量文章。

看了之后我留言道:

我的态度是,一般的 ahk 用户会点基础应用就够了。那些强大动辄几百行的代码是适合喜欢折腾的人去写的。

什么基础呢,比如快捷键热字符串,还有就是会录制 ahk 脚本就够用了。基本上看了 yonken 翻译的那几个内容就差不多了。然后加上我写的 AutoHotKey 快餐店系列教程,就足够应付日常所需了。

编程不是每个人都能胜任的工作,需要逻辑思维比较强。我写过一些 ahk 程序,自己深有体会,编程是一个痛并快乐着的过程。

我只是个 ahk 爱好者,不是什么 ahk 高手,写出 ahk 这个软件的人才是真正的高手。

关于推广方面,推广它的基础用法就够了。更多的是介绍优秀的 ahk 作品。而不是让大家去完整地学会 ahk 。那样只是重复发明轮子。

ahk 拿来挂网游之类的脚本实在是 ahk 的悲哀。

善用佳软这样回复,:

基本赞同。因此,可以确定一个 AutoHotkey 推广目标:

对尽可能多的用户:让他们了解到有一个 AutoHotkey 软件,大概是做什么的。
初级用户:发现大家提供的好脚本,能正确使用或简单修改后使用。
对中级用户:明白 AutoHotkey 能做什么;遇到需求时,能判断 AutoHotkey 是否可胜任;知道到哪里搜索现成的脚本;会编写 / 修改简单的脚本;会使用帮助。
高级用户:比较全面和深入了解 AutoHotkey 的相关函数、语法、命令,能写出较为复杂的脚本,实现较为复杂的功能;或能够精巧深入应用某些 AutoHotkey 功能。

另,特别“表扬”电脑爱好者,此刊 2008 年第 14 期的专题文章:《起跑极限加速, 20 个快速启动程序的妙方》。此文前面一大半篇幅,用非常“入门”非常“基础”的语言详细地东拼西凑地写了几个 ahk 教程。特截图“表扬”:

第一个例子:自动登陆 163 邮箱,就大大方方地拿了善用佳软的 AutoHotkey 0 级入门教程中的例子。我想说的是,不是每个人都会把马桶作为默认的浏览器。

下面又酷酷地拿了我的开机自动运行程序的延迟启动,再把 33 世界的移动文件或文件夹至目标路径 -AutoHotkey 脚本改头换面,和帅帅滴拿了关闭显示器 -AutoHotkey 脚本

然后很“厚道”地贴了两个网络链接:

接着酷毙了滴免费宣传我们无敌的煎蛋

还 show 了一下牛逼的英格力士,请看注释部分,就是分号后面那些英格力士:

最后把伟大的拼凑者们拿出来晒晒月亮:

另另,伟大的电脑爱好者还落后地发了一篇 Gmail Appinn 1.5 的文章。真够迅速的,2.0 我隔一个星期就发出来了。作者署名小赵。很好很和谐。

最后的 P.S. 昨天提供的北京奥运会赛程 Google 日历版明显有误,感谢 1986 的指出,抱歉,我没仔细核对就贴出来。另提供这个奥运会官方网站贴出的赛程

已有 71 条评论, 我要留言

  1. 李二嫂的猪说道:

    占个座,慢慢说~

    • 李二嫂的猪说道:

      不无视,但先鄙视一下~
      力挺 AutoIt!
      我们 AU3er 应该把 AHK 里的东西全学来,并以此将 AutoIt 发扬光大!
      另:图片很有沧桑感……

    • sfufoet说道:

      杂志的扫描截图。

      你挺你的 Au3,我用我的 ahk

    • 皮卡西说道:

      其实AHK的作用就是让伪代码也能变成程序而已,而且还要受到AHK自身的种种限制
      我觉得与其这个样子还不如直接去学语言

    • sfufoet说道:

      @ 皮卡西,你这样说就不对了。AHK 有 AHK 的好处。语言有语言本身的限制。说明你一直在抵制 AHK,没去用过。

    • 皮卡西说道:

      啊啊,至少我想AHK能做到的用语言都能达成,这一点是绝对毋庸置疑的,毕竟AHK也是用语言写出来的嘛.但是很多东西是只有语言能做到而AHK永远无法达成的,伪代码终究只能在分析了解程序时起到一点帮助,但是用来编程那是绝对不行的,就算编的出来那也只能是效率低下的玩具程序罢了.
      照我的分析来看AHK这个软件就是把常用的一些操作打包做成模块然后通过成句的伪代码来执行…不过这样的想法语言中的类库早就能够实现了,而且更加高效和方便…

      当然我也不是全盘否定伪代码,至少伪代码更加贴近日常用语,所以比起语言来更加方便易懂,我想这应该是诸位喜欢AHK而畏惧编程的原因.

    • Enson说道:

      其实我也是蛮赞同皮卡西的 写程序还不如专门学门语言 简单点的用VB、Delphi、C#之类的也是拖拖就可以实现的 如果不想装的话就用系统自带的脚本语言写 批处理也不错 我是实在无法爱上AHK、AutoIt之类的(一下子得罪了好多人 不要打我~~~~)
      不过说白了 都是各自的喜好 也没什么好争的 自己喜欢什么就用什么
      另:非常不赞同这句话『ahk 拿来挂网游之类的脚本实在是 ahk 的悲哀』

    • sfufoet说道:

      @ 皮卡西

      效率低下。。但是很多东西是只有语言能做到而AHK永远无法达成的。。

      我想说的是,事实是完全相反的。AHK 的效率是所有 ahker 有目共睹的高效。

      ahk 能实现的,编程不一定能实现,比如那个 Gridmove,你找不到能出其右的同类编程作品。

      我问一下,皮卡西你用过 ahk 吗?如果没有用过,请不要用这样片面的态度。

    • 皮卡西说道:

      握手…=ω=

    • sfufoet说道:

      @Enson 我想问 Enson 学过编程吗?随便一个语言,用过 AHK 吗?

    • sfufoet说道:

      AHK 是一个面向过程的脚本系统,它根本就不是程序语言那种面向对象的东西。

      我们在这里比较争论这两种的优劣实在有点可笑。

      它们根本就不具备可以比较的任何特征。

    • sfufoet说道:

      AHK 应该被拿去和批处理,VB,JS(特指运行在系统上的 VB 和 JS),AU3 比,不是和编程语言去比。

    • 皮卡西说道:

      厄…有一点我可是相当的肯定,不管AHK能够写出来什么程序,语言都可以做得出来,至少AHK的母语言就肯定可以.
      至于找不到Gridmove同类作品的问题嘛…嗯,高不高兴做和做不做的出来是毕竟是两码事,

      至于效率吧,我敢打赌高级程序员和最擅长AHK的”程序员”写出相同功能的程序来一定是前者的程序资源占用和运行速度更高

    • sfufoet说道:

      我又犯错了。VB,JS 也是面向对象的东西。。。

    • 皮卡西说道:

      …最普遍使用的C语言不就是面向过程的么

    • sfufoet说道:

      我们就别争论了,完全没有必要。

      Gridmove 是个很绝的 AHK 作品。它把 AHK 对窗口的控制发挥到了极致。换做其他变成语言,他还有费很大的力气去写代码,去 hack,专业的术语叫 Hook 一个正运行的界面。

      效率方面,AHK 的效率绝对不差。变成一个“高级程序员”比学点基础实用的 AHK 难多了。

      皮卡西你一直在强调效率,我想说的是,我用了这么久的 AHK,我对 AHK 还有有一定的了解。它的效率绝对不差。别看它是一行一行解释的命令,但效率真的是很高的。

    • Enson说道:

      编程学过 AHK装了 但是没有用 看过你发的几个源码
      不管是高级语言还是这类脚本语言 编程的思想方法都是一样的
      脚本是要通过专门的编译器解析后再执行的 所以 从效率上来说肯定会低一点 当然 现在的机器配置好 你可能感觉不到(这里的效率是指执行效率)
      脚本语言能实现的 用其他编程一样能实现 没有类似于Gridmove的作品只是说明没人做 并不代表做不出来
      这里并没有要拿AHK跟C之类的高级语言比 因为根本就不是一类的 而且面向的用户群也是不同的
      这样的讨论 口水战是难免的 不过还是那句话 自己喜欢什么就用什么 我们也不可能去强迫别人改变自己的喜好 不是吗?
      对了 说到编程 等工作稳定了之后可能会抽空写一些小众软件 不知道给不给发 ^_^

    • sfufoet说道:

      说的没错,别重复发明轮子的程序可以考虑发布。要免费、小巧、实用、有趣、绿色的软件。

    • Enson说道:

      重复发明轮子的程序

      这个是什么?看不懂…

    • XYON说道:

      sfufoet,其实我也挺支持AHK的,就是现在用AU3用顺手了。AHK一个最大的缺点,没有汉化版。
      在深度,我知道那里有一个高手叫小兵的,写软件很厉害,特别是用Autoit脚本,可以跟他讨论下。
      另外,同时开两个专区最好,有竞争就有动力,还可以互相切磋,抽时间弄个竞赛,把一个题目,开谁的脚本简洁。。。

    • caoglish说道:

      个人觉得脚本语言,应该是更加高级的语言,比编程语言更加高级一点。编程语言操作的是数据变量,所有的操作视角都是盯在数据上的,。而脚本语言操作的却是程序,吧一个个程序安排的好好的,所以操作视角是定在程序上的,就是说是在别人编写好的程序上,利用脚本程序,使其发挥的更好。

      举个例子,比如挂论坛,你编写一个脚本语言,让ie自己每过1分钟刷新一下,用脚本语言,大概就10分钟,就能编写完毕,然后自己开着电脑,就可以睡觉去了。

      但是如果是编写程序,你车程序要考虑的东西,就是一点点了。说不定,你就要先编写一个自己ie外壳,然后在才能加上一个自动刷新功能了,要知道,在程序中调用ie,可比在脚本语言中调用ie难得多了。

      既然别人都已经把功能都写好了,自己就不必再写了。调用一下就可以了。这个就是脚本语言的目的。

      毕竟脚本语言和编程语言,还是有很大差别的

    • caoglish说道:

      另外,编程语言是实现程序功能自由度大,但是程序逻辑比较严谨,代码量大。

      脚本语言是结构比较松散,编写自由度比较大,但是功能性以来调用程序比较大,自由度较低。

      当然,如果一个程序功能强大,接口多(调用参数多),脚本程序也可以变得非常强大。

      总之,我的眼里就是,脚本程序是调用应用程序的高级语言

    • sfufoet说道:

      大家不是在汉化嘛~

      我懒得泡论坛。没时间,没精力。

      ahk 就是从 au3 分离出来的。本是同根生。简洁的话,肯定是 ahk 简洁。ahk 的语法非常简洁。少了很多的括号。。。

    • 李二嫂的猪说道:

      其实 AHK/ AU3 这些东西就看用户是怎么看待了,某些地方效率可能不是很高,但并不妨碍我们的使用。可以拿它做实际的东西,也可以用来当作玩具语言,甚至只是拿来定制热键,只要有人用,就是它的价值体现。

    • Fantasy OL说道:

      回复 皮卡西 但是很多东西是只有语言能做到而AHK永远无法达成的
      我可以告诉你,你用语言编写的 我都可以用 AHK 完成。
      有了 DllCall()我可以完成任何事情。
      没听过最近流行什么编程么? 复合式编程,AHK 再合适不过了!

      • zzg说道:

        @Fantasy OL 请问用VB.net 或者 C#弄出来的dll,如何在ahk里使用DllCall调用dll里的函数?我试过了,没有结果,ErrorLevel 总是-4,但是路径明明是正确的。可以给个例子吗?

    • Fantasy OL说道:

      还有那个 Gridmove 不是其他软件写不出来,是没有程序员愿意花那么多时间写一个这么简单的软件。如果用 VC 写出这软件的时间可以写出更有意义的软件!

  2. 善用佳软说道:

    有原则的平常心……

  3. 李二嫂的猪说道:

    啊?评论改版了?

  4. 皮卡西说道:

    貌似错过地板了

  5. 177807800说道:

    还是有很多人希望从初级用户升级为高级用户的,以获得“自定义”能力~~~囧囧

    • sfufoet说道:

      希望只是希望,逻辑思维的能力是最终决定变成高级用户的最大障碍。

      要达到中级用户我想都是比较难的。

  6. Izual_Yang说道:

    对于入门用户而言,一个代码中心是最有用的,就像firefox的用户脚本和用户样式表一样。

  7. tor说道:

    《电脑爱好者》堕落了,唉

  8. 天堂之门说道:

    我补充火山的文章,引用我那的还有一个“1小时后强制休息”,其实我那名字叫休息听歌脚本。。。

    比较无语的是,确实是大量引用啊。。。

    你们在争论什么语言和脚本么?有必要么?

    DOS命令和vbscript这类不都是活的好好的么,AHK更有特色,从热键出发。

    AutoIt3国内的那个论坛注册者都几十万。。。

    • sfufoet说道:

      下次发代码记得用 CC 协议,“署名-非商业性使用-相同方式共享 2.5 中国大陆”的创作共用协议发布。

      这样就有理由找他们算账了。

    • sfufoet说道:

      论坛的一大问题就是管理,另一大问题是应付菜鸟。这两大问题都需要花时间,我没那么多的时间。有兴趣来弄个进阶 AHKer 的私自讨论的 Group 么?

      就是纯交流经验互帮互助的地方,不会有入门者来打扰的清净地。

    • sfufoet说道:

      或者干脆就加密为 exe 发布。

  9. XYON说道:

    Helfee大哥推荐了个AHK专用编辑器不错:http://hi.baidu.com/helfee/blog/item/11f62d737ce5751f8701b035.html

  10. jerryzheng说道:

    不赞同本文所描述的放弃AHK高级应用的做法。
    计算机语言从硬件的层次来讲,分为低级语言(汇编语言)高级语言(C语等),但对其非计算机专业的人士来讲,学会这些语言的应用是相当的困难,尽管计算机二级考试考过VB和C语言,但根本谈不上应用,更别谈如何使用这些语言去实现他们在电脑应用中产生的需求了。所以对于非计算机专业人士来讲,非常需要一种更高级(硬件层面)的语言,这就是AHK。
    AHK是非计算机专业人士的一大福音,他帮忙我解决了许多繁琐的事情,平时的实验数据处理,实验分析记录保存,以及文献数据库的自动分析,等等应用让我节省了许多的精力与时间。相反如果让我用C语言或是VB根本就不知道该如何去编写代码以实现这些应用。所以应该注重AHK的高级应用而不要只局限于其快捷启动这样简单的功能应用。
    PS:现在觉得AHK在网络这一块的功能非常缺乏,好像他只能实现从URL下载,却不能实现比如VPN拨号,网络上传等等功能。

    • sfufoet说道:

      讲的很对,我并没有说放弃。推广 ahk 的初级到中级用法。变高级应用就看学习者的了。高级的应用是别人帮不来的,需要自己多写代码。

      靠推广是不可能的。

    • tireless说道:

      赞同 jerryzheng 的说法。AHK 较容易入门,也较容易“结果”。编程语言需要较深的电脑知识,较长的学习时间… …所以“还不如直接去学语言”不适合所有人,但这个追求是正确的、美好的…

    • Fantasy OL说道:

      学了一圈 最后 还是回到 MFC 上了,AHK还是在 MFC的基础上的 比 VB 更加 具有解释性的一种脚本语言。

  11. 天堂之门说道:

    嗯,非商用协议。。。CC…
    不知道官方网站收集的那些脚本是不是用了什么非商用协议。。。

    不过火山也不必太生气

    关于论坛,其实我的想法不同,首要当然是翻译帮助,其次有个交流的途径。

    新手么,好帮忙的给指条路。呵呵。火山没时间泡论坛,这个理解。

  12. 天堂之门说道:

    哦对了,差点忘了。

    AutoHotkey爱好者论坛的《AutoHotkey相关网站、博客等大收集》http://ahk.5d6d.com/thread-95-1-1.html

  13. D调说道:

    侵权!侵权!抗议!抗议!

  14. 天堂之门说道:

    知道了,我和Helfee商量看,也许把注册去掉。

  15. 天堂之门说道:

    关于游客浏览的阅读权限问题,7月22日5d6d官方出台了奥运期间关闭的措施。
    没办法了。
    大家注册下很快的~

  16. 杨飒说道:

    那两篇我也看到了,特别是sfufoet的大名~

  17. infinte说道:

    怎么ahk的源代码用VS2008编译不了啊~~~
    到底是那个编译器编译的?

  18. caoglish说道:

    总感觉小众的AHK介绍不太系统,其实我看完小众的AHK讲座,最后还是什么脚本都不会写,最多就是设置一下键盘的位置变变而已。

    如果真的要开个讲座,最好详细系统的介绍一下语法规则,然后根据当天的语法规则写个小的脚本,来引起大家学习语法的兴趣,这样才好,才更加有特色。

    其实虽然安装了ahk,但基本上不用。

  19. Fantasy OL说道:

    更多的是介绍优秀的 ahk 作品。而不是让大家去完整地学会 ahk 。那样只是重复发明轮子。

    AHK 已经是一个很圆的轮子了,ahk都不学。。。

  20. 乐乐偶说道:

    哈哈!先收了,以后慢慢研究!

  21. 路过说道:

    大学时费了很多功夫,学了一些语言。可是工作后一点也没用上,最大的作用是理解软件。

    自从用了ahk后,才真正用上“语言”解决电脑中的实际问题。

有不同想法?说说看