在Python中调用AutoIt函数

22
我看到这篇文章中提到了AutoIt3 COM版本,使用它可以在Python中调用AutoIt函数。
我在AutoIt网站上没有找到COM版本。它是否隐藏在某个地方?我该如何获得它?
2个回答

40

如何在Python中使用AutoItX COM/DLL

有两种在Python中使用AutoIt的方法:

  1. pyautoit模块
  2. Python for Windows扩展(pywin32)

使用pyautoit模块将利用DLL,而使用pywin32可以使用COM。据我所知,两者之间没有功能上的区别。

前提条件

  1. Python的安装。
  2. AutoIt的安装。
  3. pyautoitpywin32的安装。

并非所有的AutoIt函数都可以通过COM/DLL接口使用。要查看哪些函数可用,请参阅AutoItX的帮助文件。

Pyautoit

使用pip或您首选的方法进行安装:

pip install -U pyautoit

如果在安装pyautoit时出现错误:WindowsError: [Error 193] %1 is not a valid Win32 application,请使用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位的所有依赖并重新尝试。


你知道在哪里找PyAutoIt的文档或教程吗? - Mawg says reinstate Monica
1
@Mawg 我不确定这是否仍有帮助,但我找到了这个AutoItX COM/DLL文档:https://documentation.help/AutoItX/ - New Guy

10

AutoItX.dllAutoItX3_x64.dll包含在默认安装中,存储在名为“AutoItX”的目录中。请查看该目录下的帮助文件AutoItX.chm以获取更多信息。


7
在Windows 7中以管理员身份运行cmd,进入AutoItX.dll并执行regsvr32.exe AutoItX3.dll。 - Delta
4
也运行 regsvr32.exe AutoItX3_x64.dll。可能会有帮助。 - SteveIrwin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接