Что нового

[Баг] Функция EnvSet: непонятное поведение в цикле.

Kalisnik

Эволюция
Сообщения
295
Репутация
63
Если функцию EnvSet поставить в цикл, то значение преременной среды не возможно получить в другом скрипте. Скрипты я не компелировал, запускал так.

Скрипт первый:
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)


Получается что в первом скрипте значение читается, а во втором ни как. Хоть в цикле, хоть вне. Думал может конфликт при обращении двух скриптов сразу к одной переменной среде, но как видно специально сделал паузу вне цикла первого скрипта - все равно значение во второй скрипт не передается. Если же записывать значение в переменную среду вне цикла первого скрипта, то все получается замечательно.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 164
Репутация
2 329
Значение от «EnvSet» будет доступно только если оно было установлено ДО запуска скрипта.


Добавлено:
Сообщение автоматически объединено:

P.S
И с циклом тут связи нет.
 
Автор
K

Kalisnik

Эволюция
Сообщения
295
Репутация
63
CreatoR
Все ясно, извиняюсь за беспокойство.
 
Верх