我使用一个文件将数据发送到全局文件中的全局变量,然后让另一个文件尝试从全局文件中检索该数据。
示例:
主文件向全局文件发送数据,其他文件从全局文件获取数据
由于某些原因,数据没有被保留。当我从全局文件中拉出数据时,它不在那里。为什么会这样呢?
下面是一些示例代码:
;main.au3
#include-once
#include "global.au3"
$g1 = "stuff"
$g2 = "stuff"
Run("copy.exe")
;global.au3
#include-once
Global $g1 = ""
Global $g2 = ""
;copy.au3
#include-once
#include "global.au3"
MsgBox(0, $g1, $g2)main.au3和copy.au3已经内置于.exe中,我双击main来运行它。
结果:$g1和$g2等于"“和"”,而它应该打印"stuff“
发布于 2011-01-14 01:31:21
这是因为global.au3没有更新。它为你的变量提供初始值。使用#include "global.au3"与编写相同:
;main.au3
#include-once
Global $g1 = ""
Global $g2 = ""
$g1 = "stuff"
$g2 = "stuff"
Run("copy.exe")和
;copy.au3
#include-once
Global $g1 = ""
Global $g2 = ""
MsgBox(0, $g1, $g2)如您所见,copy.au3 (copy.exe)将$g1和$g2设置为""。
要将$g1和$g2变量传递给copy.exe,可以使用IniRead()/IniWrite()读/写.ini文件,或者将变量作为命令行参数传递。
以下是命令行参数选项的示例:
(无需global.au3;编译main.au3和copy.au3;双击main.exe即可运行)
main.au3
;main.au3
$g1 = "stuff"
$g2 = "stuff"
ShellExecute('copy.exe', $g1 & ' ' & $g2)copy.au3
;copy.au3
$g1 = $CmdLine[1]
$g2 = $CmdLine[2]
MsgBox(0, $g1, $g2)我使用ShellExecute()而不是Run(),因为在过去(对我来说) Run()一直是个麻烦。我通常对ShellExecute()和ShellExecuteWait()没有任何问题。
此外,有关命令行参数的更多信息,您可以在AutoIt帮助中搜索“命令行参数”。
https://stackoverflow.com/questions/4675545
复制相似问题