質問

1つのファイルを使用して、Globalsファイルのグローバル変数にデータを送信し、別のファイルを試してからGlobalsファイルからそのデータを取得してから取得しています。

例:

メインファイルはデータをグローバルファイルに送信し、他のファイルはグローバルファイルからデータを取得します

何らかの理由で、データは保存されていません。グローバルファイルからデータを取得すると、そこにはありません。どうしてこれなの?

これがコードの例です。

;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に組み込まれており、メインをダブルクリックして実行します。

結果:$ g1と$ g2は、 ""と ""を印刷する必要があるときに等しくなります。

役に立ちましたか?

解決

それの訳は 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() 過去のa $$の痛みでした(私にとって)。私は通常、問題はありません ShellExecute()ShellExecuteWait().

また、コマンドラインパラメーターの詳細については、自動車ヘルプの「コマンドラインパラメーター」で検索できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top