我找到了一种从python运行内置自动it函数的方法,使用以下代码
from win32com.client import Dispatch
Auto = Dispatch("AutoItX3.Control")
Auto.Run("notepad.exe", "", 5)
是否有类似的方法来调用自定义方法,即my_AutoIt_File.au3
中定义的方法假设我在这个文件中有一个方法
Func my_autoit_method
;some code
EndFunc
有没有办法从python调用这个my_autoit_method
?
从帮助文件:
AutoIt特定的命令行开关
-
Form1: AutoIt3.exe [/ErrorStdOut] [/AutoIt3ExecuteScript] file
params[…]Execute an AutoIt3 Script File
/ErrorStdOut允许将致命错误重定向到StdOut,这可以被应用程序捕获为站点编辑器。此开关可与编译脚本一起使用。
执行一个标准的自动脚本文件'myscript '。Au3 ',使用命令:"AutoIt3.exe myscript.au3 '
-
Form2: Compiled.exe [/ErrorStdOut] [params…]
Execute an compiled AutoIt3 Script File produced with Aut2Exe.
-
Form3: Compiled.exe [/ErrorStdOut] [/AutoIt3ExecuteScript file]params[…]
Execute another script file from a compiled AutoIt3 Script File. Then you don't need to fileinstall another copy of AutoIT3.exe in your compiled file.
-
Form4: AutoIt3.exe [/ErrorStdOut]/AutoIt3ExecuteLine "command line"
Execute one line of code.
要执行单行代码,使用命令:
Run(@AutoItExe & ' /AutoIt3ExecuteLine "MsgBox(0, ''Hello World!'', ''Hi!'')"')
您必须将AutoIt函数暴露给其他应用程序。这可以通过AutoItObject轻松完成,它可以在ROT中注册对象。
AutoIt Code将是:
#include <AutoItObject.au3>
$oObject = _AutoItObject_Create()
_AutoItObject_RegisterObject($oObject, 'MyVery.CustomApplication')
_AutoItObject_AddMethod($oObject, '_my_custom_function', '_my_custom_function')
While Sleep(100)
WEnd
Func _my_custom_function($oSelf)
MsgBox(0, '', 'AutoIt says Hi')
Exit
EndFunc
Python代码应该是:
from win32com.client import Dispatch
Auto = Dispatch("MyVery.CustomApplication")
Auto._my_custom_function()