Данные не сохраняются в autoit - PullRequest
0 голосов
/ 13 января 2011

Я использую один файл для отправки данных глобальным переменным в файле 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, и я дважды щелкаю по main, чтобы запустить его.

Результат: $ g1 и $ g2 равны "" и "", когда следует печатать "материал"

1 Ответ

2 голосов
/ 13 января 2011

Это потому, что 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...