Страница 222 из 243

Добавлено: Пт фев 20, 2026 14:32
AkulaBig
Orion9 писал(а):Судя по картинке, все работает как и должно.
Кроме того, что еще объявлена переменная ValeryK1, а ее нет.
Кажется надо эту тему закрывать. Не пойму, почему мы не можем понять друг-друга.
Orion9 писал(а):SetX
Устанавливает переменную в системе. А SetEnv как-раз в текущем процессе. В общем нет смысла и это обсуждать. Я про данные из плагина пишу, а вы из команды set.
Вот скрины, которые разъясняют разницу между set и Текущим пользователем и Текущем процессом:
Изображение

Изображение
Меня просто смутил вот этот скрин jentoso
:
Изображение
Я сначала решил, что это Текущий пользователь. Потом понял, что это Текущий процесс.
Orion9 писал(а):Дугими словами, если положить лицензию в корень ТС, то заголовок запустится через 3 секунды, что явно не комильфо.
Не комильфо и главное не понятно, зачем тогда вообще нужен код для нажатия на клавиши. Но добавил проверку на наличие файла ключа. Опять отредактировал в старом посте.
Orion9 писал(а):А вот это уже тянет на баг.
Это оказался глюк с моей стороны. Видимо в процессе тестирования как-то неправильно создалась переменная. После перезагрузки компа она исчезла.

Добавлено: Пт фев 20, 2026 16:34
FallenAngel
Я убрал SetEnv /A PATH ';%COMMANDER_PATH%\Utils' и похоже, это решило проблему с NagScreen.aucfg. Еще тестирую.

Добавлено: Пт фев 20, 2026 17:19
AkulaBig
FallenAngel
Попробуйте просто перенести эту строку ниже или выше. Мне помогло.
А вообще смотрели, у вас срабатывал этот код? То-есть путь в PATH прописывался.

Добавлено: Пт фев 20, 2026 17:27
BeTeP
AkulaBig писал(а):Но добавил проверку на наличие файла ключа. Опять отредактировал в старом посте.
Пару страниц назад я уже писал об этом, но вы видимо не обратили внимания.

Если уж добавлять проверку на наличие файла ключа, то надо учесть пару вещей.

1. Файл ключа может находиться в другом месте.
Параметр "KeyPath" в wincmd.ini
Путь к ключу регистрации (БЕЗ имени файла!). По умолчанию Total Commander ищет ключ в своём собственном каталоге.
При значении KeyPath=$ TC читает ключ из реестра (двоичный параметр с именем "key" в ветке "Software\Ghisler\Total Commander").

2. Файл ключа может быть не только wincmd.key, но и tcmdkey.zip
Файл wincmd.key пакуется в zip-архив "tcmdkey.zip" без сжатия (нулевое сжатие).

Добавлено: Пт фев 20, 2026 19:09
Orion9
AkulaBig писал(а):Кажется надо эту тему закрывать
Да без проблем :)

Все началось с этого поста, и мой ответ все тот же: если пути "отваливаются" или перестают работать, нужно обязательно посмотреть, что происходит в переменных окружения. Сделать это можно в консоли (команда set или path) или в плагине Environment Variables. Без конкретики будет трудно найти причину.

Добавлено: Пт фев 20, 2026 19:33
AkulaBig
BeTeP
Я только для своей сборки пишу. То-есть в мою сборку пользователь может по незнанию забросить файл ключа и это сработает без моего ведома. Кому надо, пусть модифицируют под свою. Писать бесполезный код ради интереса желания никакого нет.

Добавлено спустя 7 минут:

Orion9
Я ничего понять не могу. Вы утверждаете, что в вашей сборки в переменную PATH добавляется переменная и до Pragma Include и после?
То-есть я проверил на вашей сборке - не работает. Вы по этому поводу один раз написали туманно - работает. Что работает не понятно. Развивать вы эту тему не хотите, дак лучше ее закрыть.

Добавлено: Сб фев 21, 2026 11:18
Orion9
AkulaBig писал(а):Вы по этому поводу один раз написали туманно - работает. Что работает не понятно.
А как, по-вашему, это должно работать?

Ну поставил я в конфиге еще два SetEnv — один в самом начале, другой в самом конце, т.е. точно после всех Pragma Include:
[cut="autorun.cfg"]

Код: Выделить всё

Pragma AutorunPluginFields 

SetEnv /A PATH ";%COMMANDER_PATH%\1st"

...
...

SetEnv /A PATH ";%COMMANDER_PATH%\2nd"

Pragma AutorunFinalizeSection
[/cut]
Результат закономерный:
[cut]Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\A3\AppData\Local\Microsoft\WindowsApps;D:\Portable\TC 11.56\1st;D:\Portable\TC 11.56;D:\Portable\TC 11.56\Ini\Tools;D:\Portable\TC 11.56\Ini\Install;D:\Portable\TC 11.56\Tools\Sysinternals;D:\Portable\TC 11.56\Tools;D:\Portable\TC 11.56\2nd[/cut]
Как видите, все нормально склеилось: и до, и после, и посередине. Не понимаю, что вы еще ожидаете увидеть.

Добавлено: Сб фев 21, 2026 15:08
AkulaBig
Orion9
Теперь понятно. То-есть у вас в коде много раз используется PATH. Назначенную переменную надо искать среди всей записи, а я только в конце смотрел. Проверю и если это так, то ошибка только в моей сборке из-за setx. Выше я уже написал, что Pragma Include не при чем. Не понятно было, почему у вас не работает. А оказывается просто не туда смотрел, кажется.

Добавлено спустя 17 минут:

Проверил, все нормально.

Добавлено: Сб фев 21, 2026 16:05
jentoso
Orion9
AkulaBig
А почему при записи

Код: Выделить всё

SetEnv /A PATH ";%COMMANDER_PATH%"
и даже
SetEnv /A PATH ;%COMMANDER_PATH%
У меня получается задвоение знаков ;;

Код: Выделить всё

PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\dotnet\;C:\Users\JenTOSO\AppData\Local\Microsoft\WindowsApps;;D:\TOTALCMD\
На работу не влияет, но "красоту" портит.

Добавлено: Сб фев 21, 2026 17:04
AkulaBig
jentoso
А потому что система почему -то прописывает с точкой запятой на конце переменную:
Изображение
Соответственно ваша удваивает, так как начинается с точки запятой, как и положено.

Добавлено: Вс фев 22, 2026 12:06
Orion9
jentoso писал(а):На работу не влияет, но "красоту" портит.
Да, есть такое.

Надо автора плагина попростить, чтобы ключ /A автоматически разруливал эту проблему. Т.е. если при добавлении нового пути прежняя %Path% завершается точкой с запятой, не надо больше ее добавлять. В противном случае, добавить.

А как правильно должно быть, фиг его знает. У [s]электронного болвана[/s] интеллекта можно спросить, главное четко сформулировать задание, а то перестарается ненароком )

Добавлено: Пн фев 23, 2026 19:48
jentoso
Почему-то после директивы Pragma AutorunFinalizeSection перестал срабатывать MsgBox. При этом остальное, к примеру DirDelete, отрабатывает штатно.

Добавлено: Вт фев 24, 2026 11:24
Orion9
jentoso писал(а):Почему-то после директивы Pragma AutorunFinalizeSection перестал срабатывать MsgBox
Из секции финализации многое может не срабатывать, если связано с GUI. А у функции MsgBox и на ровном месте могут быть проблемы с отображением в TCx64, помимо этого.

Сейчас стабильнее стало, но полностью проблему так и не удалось решить, как сам Loopback утверждал. А зачем вам MsgBox в Pragma AutorunFinalizeSection? Если очень нужен, можно через ShellExec вызвать скрипт, или использовать nircmd.exe с параметрами.

Добавлено: Вт фев 24, 2026 11:30
jentoso
Orion9
Как говорится в справка, MsgBox можно использовать для отладки.
Сделал функцию if...EndIf, а чтобы убедиться, что отработало все по сценарию, выводится сообщение.
Раньше срабатывало, а сейчас перестало. В целом не критично, просто решил сообщить.

Добавлено: Вт фев 24, 2026 12:22
Orion9
Куда же делся Loopback? Салтычиха уже места себе не находит :mrgreen:
jentoso писал(а):В целом не критично, просто решил сообщить.
Как было предложено выше, можете пока сделать:

Код: Выделить всё

ShellExec(COMMANDER_PATH & "\Scripts\MsgBox.vbs")
Файл MsgBox.vbs в подкаталоге Scripts:

Код: Выделить всё

MsgBox "AutorunFinalizeSection", vbOKOnly, "Test"
Когда вернется Loopback, может найдет в чем причина.