我找到了一种使用以下代码
从python运行内置auto函数的方法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
?
答案 0 :(得分:1)
从帮助文件中:
AutoIt特定命令行开关
Form1:AutoIt3.exe [/ ErrorStdOut] [/ AutoIt3ExecuteScript]文件
[params ...]
Execute an AutoIt3 Script File
/ ErrorStdOut 允许将致命错误重定向到StdOut,应用程序可以将其作为Scite编辑器捕获。此开关可与编译脚本一起使用。
要执行标准的AutoIt脚本文件'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文件] [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“命令行”
Execute one line of code.
要执行一行代码,请使用以下命令:
Run(@AutoItExe & ' /AutoIt3ExecuteLine "MsgBox(0, ''Hello World!'', ''Hi!'')"')
答案 1 :(得分:1)
您必须向其他应用程序公开您的 AutoIt 功能。这可以通过 AutoItObject 轻松完成,它可以在 ROT 中register an object。
AutoIt 代码将是:
#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()