Если функцию EnvSet поставить в цикл, то значение преременной среды не возможно получить в другом скрипте. Скрипты я не компелировал, запускал так.
Скрипт первый:
1.au3
Скрипт второй:
2.au3
Получается что в первом скрипте значение читается, а во втором ни как. Хоть в цикле, хоть вне. Думал может конфликт при обращении двух скриптов сразу к одной переменной среде, но как видно специально сделал паузу вне цикла первого скрипта - все равно значение во второй скрипт не передается. Если же записывать значение в переменную среду вне цикла первого скрипта, то все получается замечательно.
Скрипт первый:
1.au3
Код:
Dim $s, $q = 1
ShellExecute("2.au3")
While 1
EnvSet("ABC", $q)
$q += 1
$s = EnvGet("ABC")
Sleep(1000)
MsgBox(0, "1", $s, 1)
If $q > 3 Then ExitLoop
WEnd
MsgBox(0, "1 вне цикла", $s)
Sleep(15000)
Скрипт второй:
2.au3
Код:
Dim $s, $p
While 1
$s = EnvGet("ABC")
Sleep(1000)
MsgBox(0, "2", $s, 1)
$p += 1
If $p > 4 Then ExitLoop
WEnd
$s = EnvGet("ABC")
MsgBox(0, "2 вне цикла", $s)
Получается что в первом скрипте значение читается, а во втором ни как. Хоть в цикле, хоть вне. Думал может конфликт при обращении двух скриптов сразу к одной переменной среде, но как видно специально сделал паузу вне цикла первого скрипта - все равно значение во второй скрипт не передается. Если же записывать значение в переменную среду вне цикла первого скрипта, то все получается замечательно.