Что нового

[Баг] Функция 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,673
Репутация
2,484
Значение от «EnvSet» будет доступно только если оно было установлено ДО запуска скрипта.


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

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

Kalisnik

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