AHK入门教程5——COM对象

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的基本功能差不多就能使用了,其他命令可以通过检索前面教程里给出的帮助文档来对应使用,不建议全部记忆下,很多命令都不常用,大致阅读帮助文档的目录栏的对应内容就足够了。

留下评论