Orion9

|
Posted: Wed May 27, 2026 20:12 Post subject: |
|
|
FallenAngel
Можно, но хотелось бы понять, что это за глюк.
В Autorun есть функция GetState, через которую можно получить состояние переменных окружения. Я сделал небольшой скрипт, который запускает описываемый вами цикл в фоне, но вместо добавления пропавшего пути назад к переменной PATH, он просто информирует о том, что путь пропал и копирует в буфер состояние всех переменных.
 Hidden text | Code: | RunThread("CheckEnvState")
Func CheckEnvState()
Local interval = 10 # sec.
Local envname = ";" & COMMANDER_PATH & "\Utils"
Local envs = GetState("envvars")
If Not StrPos(envs, envname) Then
MsgBox("Поток «CheckEnvState» не запущен." & auCRLF & auCRLF & _
"Путь не найден в окружении ;%COMMANDER_PATH%\Utils", "Autorun", 0+48)
Return
EndIf
While 1
Sleep(interval*1000)
envs = GetState("envvars")
If Not StrPos(envs, envname) Then
MsgBox("Путь больше не доступен ;%COMMANDER_PATH%\Utils" & auCRLF & auCRLF & _
"Скопировать состояние переменных в буфер?", "Autorun", 4+48+4096)
If EXTENDED = 6 Then
ClipPut(envs)
MsgBox("Состояние переменных скопировано в буфер", "Autorun", 0+64)
EndIf
Return
EndIf
WEnd
EndFunc |
Если при старте ТС нужный путь в переменных отсутствует, поток с циклом не будет запущен.
Важно отловить момент, когда путь отваливается, чтобы понять, что вызывает проблему. Проверка происходит каждые 10 сек. Окно сообщения должно появиться поверх всех окон.
Можно изменить значение переменной Path в wfx плагине, чтобы долго не ждать и проверить работу функции. |
|