在Python中调用AutoIt函数
我看到有个帖子提到有一个AutoIt3的COM版本,使用这个版本我可以在Python中调用AutoIt的功能。
但是我在AutoIt的网站上找不到这个COM版本。它是不是藏在哪里了?我该怎么才能得到它呢?
2 个回答
10
AutoItX.dll
和 AutoItX3_x64.dll
是默认安装时会包含的文件,它们放在一个叫“AutoItX”的文件夹里。你可以在这个文件夹里找到帮助文件 AutoItX.chm
,里面有更多的信息。
40
如何在Python中使用AutoItX COM/DLL
在Python中使用AutoIt有两种方法:
pyautoit模块会使用DLL,而pywin32则可以使用COM。根据我所知,这两者在功能上没有区别。
前提条件
并不是所有的AutoIt功能都可以通过COM/DLL接口使用。要查看哪些功能可用,可以查看AutoItX的帮助文件。
Pyautoit
可以通过pip或你喜欢的其他方式安装:
pip install -U pyautoit
如果在安装pyautoit时遇到错误:WindowsError: [Error 193] %1 不是有效的Win32应用程序
,请使用32位版本的Python。我在使用64位版本的Python时无法成功安装pyautoit。当然,你的情况可能会有所不同。
导入并使用:
import autoit
autoit.run("notepad.exe")
autoit.win_wait_active("[CLASS:Notepad]", 3)
autoit.control_send("[CLASS:Notepad]", "Edit1", "hello world{!}")
autoit.win_close("[CLASS:Notepad]")
autoit.control_click("[Class:#32770]", "Button2")
autoit的命令都是用小写字母加下划线的形式,而不是AutoItX推荐的驼峰命名法。因此,ControlSend变成了control_send,WinClose变成了win_close,等等。
Pywin32
安装完pywin32后,可以通过以下方式调用AutoItX的功能:
import win32com.client
autoit = win32com.client.Dispatch("AutoItX3.Control")
autoit.Run("NotePad.exe")
autoit.ControlClick(WINDOW, "", "[CLASSNN:TTreeView1]", "left", 1, 53, 41)
如果这个版本有问题,请全部安装为32位版本,然后再试一次。