Autorun

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

AkulaBig
Сообщения: 638
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

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

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

Сообщение FallenAngel »

Я убрал SetEnv /A PATH ';%COMMANDER_PATH%\Utils' и похоже, это решило проблему с NagScreen.aucfg. Еще тестирую.
AkulaBig
Сообщения: 638
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

FallenAngel
Попробуйте просто перенести эту строку ниже или выше. Мне помогло.
А вообще смотрели, у вас срабатывал этот код? То-есть путь в PATH прописывался.
Аватара пользователя
BeTeP
Сообщения: 135
Зарегистрирован: Чт мар 31, 2005 00:57
Откуда: Санкт-Петербург

Сообщение 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" без сжатия (нулевое сжатие).
«The Truth Is Out There»
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

AkulaBig писал(а):Кажется надо эту тему закрывать
Да без проблем :)

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

Сообщение AkulaBig »

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

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

Orion9
Я ничего понять не могу. Вы утверждаете, что в вашей сборки в переменную PATH добавляется переменная и до Pragma Include и после?
То-есть я проверил на вашей сборке - не работает. Вы по этому поводу один раз написали туманно - работает. Что работает не понятно. Развивать вы эту тему не хотите, дак лучше ее закрыть.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17: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]
Как видите, все нормально склеилось: и до, и после, и посередине. Не понимаю, что вы еще ожидаете увидеть.
AkulaBig
Сообщения: 638
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

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

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

Проверил, все нормально.
Аватара пользователя
jentoso
Сообщения: 443
Зарегистрирован: Чт дек 20, 2007 01:36

Сообщение 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\
На работу не влияет, но "красоту" портит.
TC 11.58 combo, Windows 11 x64
AkulaBig
Сообщения: 638
Зарегистрирован: Ср дек 03, 2008 11:48

Сообщение AkulaBig »

jentoso
А потому что система почему -то прописывает с точкой запятой на конце переменную:
Изображение
Соответственно ваша удваивает, так как начинается с точки запятой, как и положено.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

jentoso писал(а):На работу не влияет, но "красоту" портит.
Да, есть такое.

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

А как правильно должно быть, фиг его знает. У [s]электронного болвана[/s] интеллекта можно спросить, главное четко сформулировать задание, а то перестарается ненароком )
Аватара пользователя
jentoso
Сообщения: 443
Зарегистрирован: Чт дек 20, 2007 01:36

Сообщение jentoso »

Почему-то после директивы Pragma AutorunFinalizeSection перестал срабатывать MsgBox. При этом остальное, к примеру DirDelete, отрабатывает штатно.
TC 11.58 combo, Windows 11 x64
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

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

Сейчас стабильнее стало, но полностью проблему так и не удалось решить, как сам Loopback утверждал. А зачем вам MsgBox в Pragma AutorunFinalizeSection? Если очень нужен, можно через ShellExec вызвать скрипт, или использовать nircmd.exe с параметрами.
Аватара пользователя
jentoso
Сообщения: 443
Зарегистрирован: Чт дек 20, 2007 01:36

Сообщение jentoso »

Orion9
Как говорится в справка, MsgBox можно использовать для отладки.
Сделал функцию if...EndIf, а чтобы убедиться, что отработало все по сценарию, выводится сообщение.
Раньше срабатывало, а сейчас перестало. В целом не критично, просто решил сообщить.
TC 11.58 combo, Windows 11 x64
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

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

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

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

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

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