找回密码
 加入
搜索
查看: 2303|回复: 3

[AU3基础] 请问,编译后的AU3程序怎么调用没有编译的AU3脚本文件啊?

[复制链接]
发表于 2014-4-20 19:18:24 | 显示全部楼层 |阅读模式
本帖最后由 周9950 于 2014-4-20 19:21 编辑

我是这么调用的。
Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @TempDir & '\Z.au3"')
没有编译之前在编辑器里面运行时可以调用的,但是编译出来以后调用就没有反应了,请问各位怎么回事啊?

后来我把宏@AutoItExt换成了@ScriptFullPath还是不行
发表于 2014-4-20 21:11:24 | 显示全部楼层
将demo.au3和test.au3放在同目录下,运行demo.au3或编译之

demo.au3:
#cs ____________________________________
        
        欢迎使用 AutoIt v3 中文版 !
        
        AutoIt v3 中文主页:  http://au3.net/
        AutoIt v3 中文学院:  http://au3.cc/
        
        Au3版本:        3.3.10.2
        脚本作者:
        脚本功能:
        更新日志:
        联系方式:
        
#ce _______________脚本开始_________________

_Main()
Exit

Func _Main()
        Local $AutoIt3Exe = _GetAutoIt3Exe()
        Switch @error
                Case 1
                        MsgBox(0 + 16, '错误', 'Au3安装目录未发现!')
                        Exit
                Case 2
                        MsgBox(0 + 16, '错误', 'AutoIt3.exe未发现')
                        Exit
        EndSwitch
        
        Local $Au3Script = @ScriptDir & '\test.au3' ; <--改成你的要调用的AU3脚本
        If Not (FileExists($Au3Script)) Then
                MsgBox(0 + 16, '错误', '目标au3脚本未发现')
                Exit
        EndIf
        
        _RunAu3Script($AutoIt3Exe, $Au3Script)
        
        Return
EndFunc   ;==>_Main

Func _GetAutoIt3Exe()
        Local $InstallDir = RegRead('HKLM\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir')
        If $InstallDir = '' Then RegRead('HKLM64\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir')
        If $InstallDir = '' Then
                Return SetError(1, 0, 0)
        EndIf
        
        Local $AutoIt3Exe = ''
        Switch @OSArch
                Case 'x86'
                        $AutoIt3Exe = $InstallDir & '\AutoIt3.exe'
                Case 'x64'
                        $AutoIt3Exe = $InstallDir & '\AutoIt3_x64.exe'
        EndSwitch
        If Not (FileExists($AutoIt3Exe)) Then
                Return SetError(2, 0, 0)
        EndIf
        
        Return SetError(0, 0, $AutoIt3Exe)
EndFunc   ;==>_GetAutoIt3Exe

Func _RunAu3Script($AutoIt3Exe, $Au3Script, $Wait = 0)
        Local $Cmd = '"' & $AutoIt3Exe & '"' & ' /AutoIt3ExecuteScript ' & '"' & $Au3Script & '"'
        ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $Cmd = ' & $Cmd & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
        If $Wait Then
                RunWait($Cmd)
        Else
                Run($Cmd)
        EndIf
        
        Return
EndFunc   ;==>_RunAu3Script
test.au3:
MsgBox(0,'','Hello World')

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2014-4-20 23:41:53 | 显示全部楼层
谢谢S大教授知识。。。。。。。。。。。。。。。
 楼主| 发表于 2014-4-21 23:18:53 | 显示全部楼层
回复 2# skyfree


    已经在学院的Afan那里得到了解决办法,谢谢S大辛苦写代码。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-7-8 07:39 , Processed in 0.080602 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表