【指南】如何构建知识体系

作者:amnesiac 首发:官方论坛中文版

导言:很多人可能在生活中或电视上看到这样的情景:一个昆虫向前飞,撞到了蜘蛛网,开始挣扎,每一次的挣扎都让蛛网剧烈晃动,看起来摇摇欲破,但昆虫也让蛛丝越捆越紧,最终成为蜘蛛腹中之物(偶尔也有网破之时)。这整个网就像是知识体系,昆虫的落点则是所遇到问题与我们知识体系的连接处,当知识体系中节点越多,连接越紧密,那么遇到问题被解决的可能性也越大(撞到网上的机率大多了)。曾看到一个 Total Commader 问题,我在回答中使用了消息,后来题主追问,为什么会想到消息呢?希望本文能给有类似疑问的朋友一些启发,这里讲述学习和使用 AutoHotkey 过程中如何构建知识体系中的个人看法,欢迎交流。

掌握基础部分

  1. 热键、热字串
    这两个是最基础的,基本无需学习、即刻掌握。
  2. 基本语法
    脚本的基本知识(如注释)、变量和表达式的用法,这部分也无需专门学习,简单了解即可。
  3. 普通的命令、函数
    这里应着重于命令自身的用途、语法和参数等,需要能用于实际问题中。
  4. 把同类命令(函数)联系起来
    分类命令,加强彼此之间的区别与联系,如文件操作命令、字符串操作命令等(帮助的目录中已经分类好了),又如 Send 系列命令中哪个适用于哪种环境。
  5. 流程控制、子程序、函数
    在需要时重用代码,增加编写代码和解决问题的效率。

学习扩展内容

  1. 指令
    能使用指令实现自己需要的控制。
  2. 数组、对象
    能理解,并对比文件对象与之前的文件命令、伪数组与数组的异同。
  3. 图形界面
    了解 Gui/GuiControl/GuiControlGet 及个子命令用法,会使用 SmartGUI 创建图形界面或自行定制。
  4. 正则表达式
    文本处理中,这个工具功能强大,要完全掌握委实不易,不过基础部分通过帮助中的参考在脚本中使用问题应该不大。

了解进阶知识

  1. Run/RunWait
    不会批处理不要紧,适当了解系统命令行中的命令有些事情能事半功倍,有兴趣也可了解第三方工具,如 NirCmd(命令行中少见的瑞士军刀)等。注:这两个命令运行图形程序也是一样的,不过这对于系统程序或第三方工具都较简单,应该基础部分就会了。
  2. COM 系列函数
    会使用系统或第三方 COM 对象,如 Office 系列组件、大漠插件等。
  3. PostMessage/SendMessage/OnMessage()/RegisterCallback()
    消息,会查询系统或第三方工具的消息相关文档并用于脚本中。
  4. WMI
    WMI 实际上也是通过 COM 调用的,但它异常强大同时异常复杂,所以这里单独提到。
  5. DllCall()/VarSetCapacity()/NumPut()/NumGet()
    了解 Windows API,能构造出所需变量类型并使用,能使用第三方组件。
  6. 其他
    AutoHotkey_H、机器码等,单从用处而言这些可能较罕见,不过有助于理解 AutoHotkey 的内部机制,如半线程的概念等。

小结

  • 上面这些的学习材料,除了帮助一般都可以在论坛中找到说明或相关指引(对于第三方工具还需查阅相关文档),基本都带有测试代码,自己动手实践过,要掌握问题不大。
  • 说到学习资源,许多用户觉得 AutoHotkey 的资源不多(基本都在论坛)。我觉得,基础或扩展部分的内容在帮助或论坛的资源作为学习是足够的,对于进阶部分除了查阅相关文档,很多时候还可以参照其他语言的例子,例如 vbs 调用 COM 的代码可以直接调用或转换过来(以前微软网站上有大量 vbs 代码的教程),而操作网页 JavaScript 的代码说少就说不过去了(它们调用 COM、WMI 的语法都大同小异),有相应的功力也可参考其他语言的教程。
  • 学习这些不需按指定顺序,按个人的需求,假设你之前操作过了字符串,最近又遇到字符串问题,对某些命令的用法感到疑惑,那么可以把所有的字符串命令(函数)都看过,对不解的地方写个小脚本测试,这样对它们有个整体的理解和把握,那么以后遇到字符串问题时一般能很快找到最适用的命令。
  • 构建了这个体系后,同一种问题常常有多种解决方法,例如使用命令行命令、COM、WMI 等,怎么选择呢?实际上无需选择,如果效果相同,选最简单、最顺手的就行了。另外还有个指导,一般无需选最强大的、够用就行了,说到这点估计 Windows API 的强大无其他方式可比,不过估计没几个人作为首选。

最后,这个网的结点越多,联系越紧密,那么猎物撞到网上的机率就越大(解决的方法也增多)。对于本文开头所说的问题,如果不用消息,可能还有其他方法,因为这个方法够简单,我不会再作他想。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,710评论 4 376
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,839评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,295评论 0 255
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,776评论 0 223
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,198评论 3 297
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,074评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,200评论 2 322
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,986评论 0 214
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,733评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,877评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,348评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,675评论 3 265
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,393评论 3 246
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,209评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,996评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,212评论 2 287
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 36,003评论 2 280

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,156评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,303评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,598评论 25 707
  • 今天送完孩子在家里剥花生,感恩今天我还活着,感恩世间的万事万物,谢谢,谢谢,谢谢!!! 想起以前在家和妈妈剥...
    温丽丽阅读 178评论 0 1
  • 今天在读书群里,跟一个朋友讨论起来现在共享单车出行的事情。这个朋友是做电动自行车制造的,他认为如果通过电动自行车做...
    逄格亮阅读 286评论 0 1