Autorun

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

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

Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Kirr
Возможность присвоить переменной пустое значение было сделано специально, поскольку ТК где-то примерно с 9 версии поддерживает такие переменные, а их использование весьма удобно для разных целей, например, для неявного построения путей к программам в 32/64 битных системах. Поэтому смысла копировать стандартное поведение с удалением переменной я не вижу.

Если найдется сценарий, когда наличие или отсутствие переменной критично, наверно, можно будет добавить переключатель или отдельную функцию для удаления переменной. Но пока, как вы сами заметили, результат идентичен в обоих случаях.
Kirr
Сообщения: 3
Зарегистрирован: Вт июн 17, 2014 13:21

Сообщение Kirr »

Loopback, спасибо за отклик!
Ок. :)
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Версия 2.2.5 beta

Незаметно прошло два года с последней версии... Надеюсь, что всё же скоро будет логическое завершение, во всяком случае на данный момент всё что хотелось добавить в движок - добавлено, все найденные косяки - исправлены. Осталось сделать английскую версию справки.

+ добавлена функция SetError для пользовательских функций
- макрос ERROR был полностью неработоспособен в бета-версиях
* проверены, оптимизированы и почищены сообщения об ошибках
+ Sysinfo: добавлена поддержка новых ОС в переменной SYSINFO_OSVERSION
- исправлена и дополнена обработка ошибок в Args
+ можно использовать aucfg в качестве возможного расширения для файла конфигурации
+ ShowPopupMenu теперь доступна как отдельная функция
+ Tweaks: добавлена команда SetMessageAction
- функции StrPos и StrReplace неправильно обрабатывали пустые параметры
* Tweaks: ControlSetMouseAction выполнение команд вынесено в отдельный поток
* изменена логика загрузки перевода: при отсутствии Pragma AutorunLanguage будет загружен язык, установленный в ТК
+ добавлено условие Switch..Case..EndSwitch
- исправлена проблема с появлением случайных ошибок в процессе бесконечного рабочего цикла
+ доработан парсер, загрузка теперь не продолжается после обнаружения фатальной ошибки синтаксиса в выражении
* парсинг скрипта перенесен в поток для устранения проблем с отображением сообщений об ошибках
- при вызове функции из ControlSetMouseAction и использовании Sleep основное окно ТК больше не подвешивается
+ добавлен плагин Runtime
- при добавлении функции из плагина была возможность добавления дубликата
+ формальная проверка корректности записи чисел при парсинге
+ поддержка чисел в hex-формате, например: 0xFF, 0x45AB и т.д. (только в функциональной записи)
+ API: дополнительные коды фатальных ошибок и их обработка
+ добавлена подсветка синтакисиса кода в онлайн и оффлайн версиях справки
+ новая справка (пока только русская)
+ разрешено использование строчных комментариев в конце выражений
+ поддержка переменных в параметре CommandExec
+ предотвращение ситуаций с существованием глобальной переменной и переменной окружения с одним именем
+ добавлены функции Chr, Asc, StrCompare, адаптированы StrPos, StrReplace, StrPart
- исправлен древний баг, когда Autorun не мог загрузить свои субплагины при открытом в ТК каталоге Autorun
+ добавлены специальные константы auCRLF, auCR, auLF, auTAB
+ Tweaks: добавлена команда SetHotkeyAction
+ Tweaks: динамические меню
+ Tweaks: добавлены опции выравнивания меню
gogoshar
Сообщения: 3
Зарегистрирован: Вт сен 29, 2020 11:23

Сообщение gogoshar »

Версия 2.2.5 beta
При установке TC10.51 падает
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

gogoshar

Очень информативно :)

Я тестирую на том же 10.51 и ничего не падает.

Как минимум:
Новая установка или уже была предыдущая версия?
Если новая - конфиг создан?
Если старая, то что-то менялось в конфиге?
Если менялось - надо попробовать отключить последовательно команды в конфиге и посмотреть, что может давать такой эффект.
Какая ошибка в конце-концов.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Версия 2.2.6 beta

- исправлена обработка последнего параметра при вызове функций из Runtime
- исправлена функция Sleep для значений не кратных 10
+ дополнена функция ItemAtCursor
- исправлена функция RequestInfo
- исправлена ошибка неправильного типа с оператором not
- исправлена ошибка с унарным минусом в выражениях c операторами сравнения
- исправлена неработоспособность директивы LegacyExpression
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Loopback
Спасибо за развитие плагина!
Loopback писал(а):+ Tweaks: добавлена команда SetHotkeyAction
Основное преимущество данной команды над стандартным функционалом горячих клавиш в Total Commander в том, что установленные сочетания также работают в командной строке, а не только в панелях.
Хотел уточнить. Попробовал в TC из командной строки комбинацию Ctrl+B – работает (с автоматическим переходом в панель). Или имеются ввиду клавиши вроде "Home", "End"?
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

sa

В принципе можно переопределить любые хоткеи, можно и "Home", "End", но все же думаю ломать себе стандартный функционал никто не захочет.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Loopback
Я имел ввиду, что Ctrl+B работает из командной строки и в стандартном функционале (без плагина). Или не так?
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

sa
А, ну это да. Имелись в виду пользовательские сочетания, которые не работают в командной строке. А некоторые сочетания (например Win+C), у меня вообще нигде не работали, даже в панелях.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

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

Сообщение jentoso »

Как "заставить" вносить в реестр значение в виде пути до файла, а не отдельными разделами реестра?

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

RegWrite "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" "d:\\TESTING\\hwmonitor\\HWMonitor_x64.exe" REG_SZ "RUNASINVOKER"

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

d:\\TESTING\\hwmonitor\\HWMonitor_x64.exe
В итоге создается не значение, а отдельные разделы (\ или \\ не влияет на результат).
TC 11.58 combo, Windows 11 x64
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Loopback, доброго здоровья!

Прошу заранее пардону, если туплю, но что-то я запутался. Вот у меня запущена программа "c:\totalcmd\utils\Everything64.exe". В консоли (comspec) по команде TASKLIST процесс выглядит как "Everything64.exe". Процесс работает, т.о. ф-ция ProcessExist() плагина должна возвращать 1, если я правильно её вызвал. У меня 1 возвращает одна только единственная запись (регистронезависимо):

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

MsgBox(ProcessExist("Everything64.exe"))
Остальные варианты возвращают 0 (хотя должно быть 1, ведь процесс то есть):

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

MsgBox(ProcessExist("~/F", "c:\totalcmd\utils\Everything64.exe"))
MsgBox(ProcessExist("/F", "c:\totalcmd\utils\Everything64.exe"))
MsgBox(ProcessExist("c:\totalcmd\utils\Everything64.exe"))
MsgBox(ProcessExist("Everything"))
MsgBox(ProcessExist(%EVERYTHING%))
Если «Имя процесса», как написано в справке, это строго имя процесса, без пути (как в TASKLIST, и как в AutoIt), то зачем тогда ключ "/F"? Подскажите, пожалуйста, может я чего недодумал.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

jentoso

Даа, мощный косяк всплыл. Проблема в том, что для работы с реестром я брал какую-то готовую библиотеку, а ее автор почему-то решил передавать ключ и имя параметра одной строкой. Соответственно, придется изрядно переделать библиотеку, чтобы разделить их и реализовать поддержку ключей с такими именами.

yozhik
Остальные варианты возвращают 0 (хотя должно быть 1, ведь процесс то есть):
Не смог подтвердить. Предполагая, что переменная EVERYTHING содержит полный путь, работает изначально вариант 1. Вариант 2 неправильный, 3, 4, 5 разумеется не будет т.к. полный путь без /F.

4 и 5 правильно будет так:

MsgBox(ProcessExist("~/F", Everything))
MsgBox(ProcessExist("~/F", %EVERYTHING%))
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Loopback писал(а):работает изначально вариант 1
Да, я из этого исходил. Но поскольку вчера этот вариант упорно возвращал 0, я стал тыкать «на авось» в другие всевозможные комбинации. Сегодня этот же самый вариант возвращает 1. Сижу теперь, отгоняю настойчивые мистические толкования произошедшего. Изображение

Назрела хотелка. Поскольку благодаря Tweaks на функциональные кнопки (клавиши) теперь можно навесить много всего полезного (и это помимо стандартных возможностей TC), становится насущной необходимость во всплывающей для них подсказке, где можно наглядно перечислить что конкретно на каждую навешено. Я вот себе смастерил костыль на AutoIt, но он именно что костыль, потому что вызывается по Alt+ПКМ через ControlSetMouseAction (а не по наведении), ну и вообще самодеятельный, хотя и работает:

Изображение

Можно ли придумать что-то в этом роде? Только очень желательно, чтобы в таких подсказках было доступно простейшее форматирование при помощи табов и переводов строки.
Ответить