AHK一种比较常用的应用就是在Office、IE浏览器等应用中实现自动化功能,这就需要用到COM对象了,本文也需要建立在对AHK已经有基本语法了解的基础上,建议先大致阅读理解了文档的画红圈内容后再看本文内容
先看下面一个例子,例子可以实现在word中”`”+”d”插入打钩复选框,”`”+”k”插入空白复选框
` & d::
打钩复选框:
wd:=ComObjActive(“word.application”)
wd.ScreenUpdating:=0
en:=wd.selection.start
wd.Selection.InsertAfter(“00FE”)
;~ wd.ActiveDocument.Range(en-4, en).Select
wd.Selection.Font.NameAscii:=”TimesNewRoman”
Send !x
wd.Selection.Font.NameAscii:=”Wingdings”
wd.Selection.Font.NameOther:=”Wingdings”
wd.ScreenUpdating:=1
return
` & k::
空白复选框:
wd:=ComObjActive(“word.application”)
wd.ScreenUpdating:=0
en:=wd.selection.start
wd.Selection.InsertAfter(“00A8”)
wd.Selection.Font.NameAscii:=”TimesNewRoman”
Send !x
wd.Selection.Font.NameAscii:=”Wingdings”
wd.Selection.Font.NameOther:=”Wingdings”
wd.ScreenUpdating:=1
return
类似的还有一些基本功能的快捷键
1.按win键+q来实现无格式粘贴
#q::ComObjActive(“word.application”).Selection.PasteAndFormat(2)
2. 使用win+Alt+左中括号来实现减小段落间距(首先需要在word里建立一个vba程序,如果不会在word里编写vba程序的请自行百度)
vba代码如下:
Sub 缩小段落间距()
On Error Resume Next
Application.ScreenUpdating = False
With Selection.ParagraphFormat ‘研究下如何判断选择的单行或多行原则
.LineUnitBefore = .LineUnitBefore – 0.1
.LineUnitAfter = .LineUnitAfter – 0.1
End With
Application.ScreenUpdating = True
End Sub
AHK代码如下
#![::ComObjActive(“word.application”).run(“缩小段落间距”)
3.在excel中按`+1来设置单元格为文本格式
` & 1::ComObjActive(“excel.application”).ActiveCell.NumberFormatLocal:=”@”
4.在ppt中按住Win+[/]来实现减小/增大行距
#[:: ;调节行距;奇怪的问题,如果是不删除全局的<,则#]会导致#[失效,单独一个#[没有问题,即使不加<也没问题。
#]::
ComObjActive(“powerpoint.Application”).ActiveWindow.Selection.TextRange.ParagraphFormat.SpaceWithin+=(A_ThisHotkey=”#[“?-0.1:0.1)
return
5.自动打开网页(对于网页的自动化编程可以参看https://www.autohotkey.com/boards/viewtopic.php?f=29&t=4311)
objIE := ComObjCreate(“InternetExplorer.Application”) ; 创建 IE 对象
objIE.Visible := true ; 由于 IE 对象默认是隐藏的(后台),这里让它显示出来,这样我们可以看到操作的效果
objIE.Navigate(“www.AutoHotkey.com”) ; 导航到网页
更多的功能可以自己根据需要开发,这里提供COM对象的常见结构,对于不同的应用使用不同的COM组件
https://autohotkey.com/board/topic/56987-com-object-reference-autohotkey-v11/
最后在提供一些有帮助的论坛和网页
一些基本入门中文教程和较多的实例https://www.autoahk.com/
论坛中有很多通过翻译过来的经典中文教程https://www.autohotkey.com/boards/viewforum.php?f=29&start=25
英文论坛https://autohotkey.com/board/forum/49-scripts-and-functions/
我最初学习AHK的想法就是用在日常办公和游戏脚本的应用,如果能较好的掌握COM对象的应用,AHK的基本功能差不多就能使用了,其他命令可以通过检索前面教程里给出的帮助文档来对应使用,不建议全部记忆下,很多命令都不常用,大致阅读帮助文档的目录栏的对应内容就足够了。