从python调用自定义AutoIt函数



我找到了一种从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()

相关内容

  • 没有找到相关文章

最新更新