andywth 发表于 2008-6-20 13:32:31

如何执行变量的内容?

例如$var="msgbox(0, ""aaa"", ""bbb"")"
有没有简单的方法或命令可以直接调用/执行$var内的命令?即出来的效果等于msgbox(0, "aaa", "bbb").

[ 本帖最后由 andywth 于 2008-6-20 23:27 编辑 ]

zcbenz 发表于 2008-6-20 18:22:28

如果要执行的命令是简单的运算,用execute就行了,比如:
$a=1
$v=Execute("$a+1"); $v is set to 2

但若是需要用到函数,比如楼主举的那个例子,那这条路就走不通了。
不过利用Autoit的命令行可以勉强实现:

Form4: AutoIt3.exe /AutoIt3ExecuteLine "command line"
                Execute one line of code.Run(@AutoItExe & ' /AutoIt3ExecuteLine"MsgBox(0, ''Hello World!'', ''Hi!'')"')
为什么说是勉强呢?因为这个方法不能返回函数的返回值-_-

直接点的方法就只有这个了,如果楼主有时间的话可以用自定义函数一个一个代替原有函数,然后用Call命令调用。

另外,call命令只能调用自定义函数:

The function cannot be a built-in AutoIt function or plug-in function.


为什么Autoit要弄这么复杂呢?是因为怕你编写病毒:p

andywth 发表于 2008-6-20 23:25:21

......
我貌似正在写一个木马...哈哈...
谢谢2楼的帮助,我后来还是放弃直接调用执行变量的内容了,加了一些代码,复杂了点,但也达到了我要的效果了.
页: [1]
查看完整版本: 如何执行变量的内容?