Autorun
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Kirr
Возможность присвоить переменной пустое значение было сделано специально, поскольку ТК где-то примерно с 9 версии поддерживает такие переменные, а их использование весьма удобно для разных целей, например, для неявного построения путей к программам в 32/64 битных системах. Поэтому смысла копировать стандартное поведение с удалением переменной я не вижу.
Если найдется сценарий, когда наличие или отсутствие переменной критично, наверно, можно будет добавить переключатель или отдельную функцию для удаления переменной. Но пока, как вы сами заметили, результат идентичен в обоих случаях.
Возможность присвоить переменной пустое значение было сделано специально, поскольку ТК где-то примерно с 9 версии поддерживает такие переменные, а их использование весьма удобно для разных целей, например, для неявного построения путей к программам в 32/64 битных системах. Поэтому смысла копировать стандартное поведение с удалением переменной я не вижу.
Если найдется сценарий, когда наличие или отсутствие переменной критично, наверно, можно будет добавить переключатель или отдельную функцию для удаления переменной. Но пока, как вы сами заметили, результат идентичен в обоих случаях.
Версия 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: добавлены опции выравнивания меню
Незаметно прошло два года с последней версии... Надеюсь, что всё же скоро будет логическое завершение, во всяком случае на данный момент всё что хотелось добавить в движок - добавлено, все найденные косяки - исправлены. Осталось сделать английскую версию справки.
+ добавлена функция 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
Очень информативно
Я тестирую на том же 10.51 и ничего не падает.
Как минимум:
Новая установка или уже была предыдущая версия?
Если новая - конфиг создан?
Если старая, то что-то менялось в конфиге?
Если менялось - надо попробовать отключить последовательно команды в конфиге и посмотреть, что может давать такой эффект.
Какая ошибка в конце-концов.
Очень информативно
Я тестирую на том же 10.51 и ничего не падает.
Как минимум:
Новая установка или уже была предыдущая версия?
Если новая - конфиг создан?
Если старая, то что-то менялось в конфиге?
Если менялось - надо попробовать отключить последовательно команды в конфиге и посмотреть, что может давать такой эффект.
Какая ошибка в конце-концов.
Версия 2.2.6 beta
- исправлена обработка последнего параметра при вызове функций из Runtime
- исправлена функция Sleep для значений не кратных 10
+ дополнена функция ItemAtCursor
- исправлена функция RequestInfo
- исправлена ошибка неправильного типа с оператором not
- исправлена ошибка с унарным минусом в выражениях c операторами сравнения
- исправлена неработоспособность директивы LegacyExpression
- исправлена обработка последнего параметра при вызове функций из Runtime
- исправлена функция Sleep для значений не кратных 10
+ дополнена функция ItemAtCursor
- исправлена функция RequestInfo
- исправлена ошибка неправильного типа с оператором not
- исправлена ошибка с унарным минусом в выражениях c операторами сравнения
- исправлена неработоспособность директивы LegacyExpression
Loopback
Спасибо за развитие плагина!
Спасибо за развитие плагина!
Loopback писал(а):+ Tweaks: добавлена команда SetHotkeyAction
Хотел уточнить. Попробовал в TC из командной строки комбинацию Ctrl+B – работает (с автоматическим переходом в панель). Или имеются ввиду клавиши вроде "Home", "End"?Основное преимущество данной команды над стандартным функционалом горячих клавиш в Total Commander в том, что установленные сочетания также работают в командной строке, а не только в панелях.
Как "заставить" вносить в реестр значение в виде пути до файла, а не отдельными разделами реестра?
В итоге создается не значение, а отдельные разделы (\ или \\ не влияет на результат).
Код: Выделить всё
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.exeTC 11.58 combo, Windows 11 x64
Loopback, доброго здоровья!
Прошу заранее пардону, если туплю, но что-то я запутался. Вот у меня запущена программа "c:\totalcmd\utils\Everything64.exe". В консоли (comspec) по команде TASKLIST процесс выглядит как "Everything64.exe". Процесс работает, т.о. ф-ция ProcessExist() плагина должна возвращать 1, если я правильно её вызвал. У меня 1 возвращает одна только единственная запись (регистронезависимо):
Остальные варианты возвращают 0 (хотя должно быть 1, ведь процесс то есть):
Если «Имя процесса», как написано в справке, это строго имя процесса, без пути (как в TASKLIST, и как в AutoIt), то зачем тогда ключ "/F"? Подскажите, пожалуйста, может я чего недодумал.
Прошу заранее пардону, если туплю, но что-то я запутался. Вот у меня запущена программа "c:\totalcmd\utils\Everything64.exe". В консоли (comspec) по команде TASKLIST процесс выглядит как "Everything64.exe". Процесс работает, т.о. ф-ция ProcessExist() плагина должна возвращать 1, если я правильно её вызвал. У меня 1 возвращает одна только единственная запись (регистронезависимо):
Код: Выделить всё
MsgBox(ProcessExist("Everything64.exe"))Код: Выделить всё
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%))jentoso
Даа, мощный косяк всплыл. Проблема в том, что для работы с реестром я брал какую-то готовую библиотеку, а ее автор почему-то решил передавать ключ и имя параметра одной строкой. Соответственно, придется изрядно переделать библиотеку, чтобы разделить их и реализовать поддержку ключей с такими именами.
yozhik
4 и 5 правильно будет так:
MsgBox(ProcessExist("~/F", Everything))
MsgBox(ProcessExist("~/F", %EVERYTHING%))
Даа, мощный косяк всплыл. Проблема в том, что для работы с реестром я брал какую-то готовую библиотеку, а ее автор почему-то решил передавать ключ и имя параметра одной строкой. Соответственно, придется изрядно переделать библиотеку, чтобы разделить их и реализовать поддержку ключей с такими именами.
yozhik
Не смог подтвердить. Предполагая, что переменная EVERYTHING содержит полный путь, работает изначально вариант 1. Вариант 2 неправильный, 3, 4, 5 разумеется не будет т.к. полный путь без /F.Остальные варианты возвращают 0 (хотя должно быть 1, ведь процесс то есть):
4 и 5 правильно будет так:
MsgBox(ProcessExist("~/F", Everything))
MsgBox(ProcessExist("~/F", %EVERYTHING%))
Да, я из этого исходил. Но поскольку вчера этот вариант упорно возвращал 0, я стал тыкать «на авось» в другие всевозможные комбинации. Сегодня этот же самый вариант возвращает 1. Сижу теперь, отгоняю настойчивые мистические толкования произошедшего.Loopback писал(а):работает изначально вариант 1

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