Страница 221 из 243
Добавлено: Чт фев 19, 2026 12:38
Orion9
AkulaBig писал(а):Удивительно, но все работает хорошо
А если поставить MsgBox за подключенным модулем, сколько секунд потребуется, чтобы он появился на экране?
AkulaBig писал(а):Я такое не писал

Бывает.
AkulaBig писал(а):Почитал хэлп. Получается это ошибка в Autorun
Нет никакой ошибки, плагин Environment Variables хорошо показывает все доступные типы переменных:
Код: Выделить всё
Current process (Total Commander)
Current user
System
У каждого типа своя область видимости. Все-равно что Local и Global в Autorun. Процесс создает свою копию %Path% и добавляет к ней пути через ключ /A. Если не использовать ключ /A, переменная, естественно, затрется. Однако пострадает от этого только сам процесс и, возможно, другие процессы, запускаемые из него.
Добавлено: Чт фев 19, 2026 14:10
AkulaBig
Orion9 писал(а):Нет никакой ошибк
Вы внимательно прочитайте мои посты, а лучше сами проверьте.
Смысл в том, что имеет значение, в каком месте объявлять переменную, присоединяющую значение к существующей переменной. То-есть с параметром /A. Если ее объявлять до Pragma Include, она НЕ СОЗДАЕТСЯ. Вот в чем соль.
Про остальное после проверки отпишусь.
Добавлено: Чт фев 19, 2026 14:31
jentoso
AkulaBig
Влезу в разговор, если правильно понял.
У меня мои переменные в начале конфига перед Pragma объявлены и работают.
Добавлено: Чт фев 19, 2026 18:06
AkulaBig
jentoso
Переменные с параметром /A? Без параметра /A и у меня переменные создаются в любом месте. А вот с параметром /A только после Pragma Include. Выше скрины с этим. Проверил на сборке Orion9, тоже самое. То-есть это не у меня косяк.
Добавлено: Чт фев 19, 2026 18:14
jentoso
AkulaBig
Код: Выделить всё
SetEnv /A TCIMG "%COMMANDER_PATH%\plugins\Tools\TCIMG\TCIMG.exe"
SetEnv /A TCFS2 "%COMMANDER_PATH%\plugins\WDX\Autorun\Plugins\TCFS2\TCFS2.exe"
SetEnv /A IRFAN "%COMMANDER_PATH%\Utils\IrfanView\i_view32.exe"
SetEnv /A PATH ;%COMMANDER_PATH%
SetEnv /A OIT_DATA_PATH "%COMMANDER_PATH%\TempTC"
В итоге путь к TC отображается в PATH.

А в конфиге переменные перед Pragma Include

Добавлено: Чт фев 19, 2026 18:43
Orion9
AkulaBig писал(а):Вы внимательно прочитайте мои посты, а лучше сами проверьте.
Какие посты? Все, на что я ответил, было в
одном вашем сообщении.
jentoso
Спасибо за тест. У себя этой проблемы тоже не вижу. Поставил в самое начало
Код: Выделить всё
SetEnv /A PATH ";%COMMANDER_PATH%\Utilites\Sysinternals;%COMMANDER_PATH%\Scripts\Ahk"
Все работает исправно.
Более того. Похоже, Loopback исправил проблему с приростанием одинаковых путей в переменной %Path%, которая раньше была у ключа
/A. А ведь раньше приходилось прыгать с бубном, чтобы ее решить, типа:
Код: Выделить всё
Global Envrs = GetState("envvars")
If Not StrPos(Envrs, "COMMANDER_HANDLE") > 0 Then
SetEnv /A PATH ";%COMMANDER_PATH%\Utilites\Sysinternals;%COMMANDER_PATH%\Scripts\Ahk"
Endif
SetEnv COMMANDER_HANDLE %AUTORUN_TCHANDLE%
Но сейчас и без этого все работает нормально.
AkulaBig писал(а):Проверил на сборке Orion9, тоже самое. То-есть это не у меня косяк.
Если вы запускали сборку из своего ТС, это не пойдет. Нужно запускать из проводника. Environment Variables не обязательно ставить, можно просто в командной строке набрать set и скопировать текст в окно редактора. Ну и дополнительно, в меню кнопки Autorun есть пункт "Переменные окружения".
Добавлено: Чт фев 19, 2026 19:26
AkulaBig
jentoso
Orion9
Интересно. Я какую-то сборку Autorun что ли пропустил?

У вас такой номер сборки?
Orion9 писал(а):Если вы запускали сборку из своего ТС, это не пойдет.
Да, из-под своей.
Добавлено: Чт фев 19, 2026 19:38
jentoso
AkulaBig
Версия такая же 2.2.21.3
Autorun_ModifyDialogs.dll 1.0.5.0
Autorun_Process.dll 1.0.6.0
Autorun_RegExp.dll 0.9.1.0
Autorun_Runtime.dll 0.9.0.0
Autorun_Sysinfo.dll 1.0.8.0
Autorun_Tweaks.dll 1.2.6.0
Добавлено: Чт фев 19, 2026 19:44
AkulaBig
jentoso
Понял, что у нас с вами не совпадает. У вас приклеивается к переменной в среде Текущего пользователя. А у меня в Текущем пользователе не приклеивается:

У меня приклеивается в текущем процессе:

И не работает. Обратите внимание на заголовки окон.
Orion9
Запустил вашу сборку Autorun TC 11.56 из-под проводника. Нет, не работает. И по Set не показывает.
Сейчас проблема стала понятной. У вас с
jentoso переменная приклеивается в Текущем пользователе, а у меня в текущем процессе. Тоже самое и в вашей сборке. Может есть идеи, почему так?
Подозрение на саму Винду. У вас у обоих Вин11?
Добавлено: Чт фев 19, 2026 19:48
jentoso
AkulaBig
TC 11.56 combo, Windows 11 x64
Добавлено: Чт фев 19, 2026 19:53
AkulaBig
Orion9
Orion9 писал(а):А если поставить MsgBox за подключенным модулем, сколько секунд потребуется, чтобы он появился на экране?
Нормально работает. Не засекал, но очень похоже на 3 сек. До модуля быстро, но не мгновенно.
jentoso писал(а):TC 11.56 combo, Windows 11 x64
Тогда вообще не понятно. Хм, была-бы проблема в моей сборке, нет вопросов. Но и в сборке
Orion9 у меня то-же самое

Добавлено: Чт фев 19, 2026 20:08
jentoso
AkulaBig
Сейчас запустил свой TC в песочнице. Все работает

Добавлено: Чт фев 19, 2026 20:44
AkulaBig
jentoso
Я думаю концов не найдем.
Закомментил autorun.cfg полностью. Оставил только объявление переменных:
Код: Выделить всё
SetEnv /A PATH ;ValeryK
SetEnv /A PATH ;ValeryK1

Заработало, но как-то странно. Как видите сначала присоединилась ValeryK1. А затем ValeryK,ValeryK1. Очень странно. Ну и все это в текущем процессе.
Добавлено: Пт фев 20, 2026 08:05
AkulaBig
Кажется разобрался с проблемой. Виной оказалась запись
Код: Выделить всё
ShellExec /SW_HIDE /WAIT %COMSPEC% '/c setx OIT_DATA_PATH %COMMANDER_PATH%'
Работает в зависимости от того, выше или ниже ее находится переменная с параметром /A.
В сборке
Orion9 не стал искать источник проблемы. Но до сих пор не работает.
Добавлено: Пт фев 20, 2026 12:20
Orion9
AkulaBig писал(а):Сейчас проблема стала понятной. У вас с jentoso переменная приклеивается в Текущем пользователе, а у меня в текущем процессе.
Чтобы приклеить переменную в Текущем пользователе, это еще надо постараться. Например, зайти сюда:
Код: Выделить всё
rundll32.exe sysdm.cpl,EditEnvironmentVariables
Или поискать другие способы, типа SetX или прямой записи в реестр.
Autorun приклеивает в текущем процессе. Поэтому когда вы пишете:
[У меня приклеивается в текущем процессе:

И не работает.
Не понятно, что вы ожидаете: что бы что заработало? Судя по картинке, все работает как и должно.
AkulaBig писал(а):Нормально работает. Не засекал, но очень похоже на 3 сек. До модуля быстро, но не мгновенно.
О том и была речь. Если вместо MsgBox использовать полезный код (например, запуск заголовка), то этот код выполнится только через 3 секунды после старта. Дугими словами, если положить лицензию в корень ТС, то заголовок запустится через 3 секунды, что явно не комильфо.
AkulaBig писал(а):Как видите сначала присоединилась ValeryK1. А затем ValeryK,ValeryK1. Очень странно.
А вот это уже тянет на баг. По крайней мере, требует детальной проверки. Напомнило чем-то проблему дублирования путей, о которой я писал выше. Тогда я не стал сообщать Loopback, просто использовал код как временное решение, но это код так и завис с тех пор, хотя тоже имеет свои недостатки.