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

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

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

Добавлено: Чт мар 10, 2022 23:41
Kirr
Loopback, спасибо за отклик!
Ок. :)

Добавлено: Пт сен 16, 2022 18:54
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: добавлены опции выравнивания меню

Добавлено: Сб сен 17, 2022 11:59
gogoshar
Версия 2.2.5 beta
При установке TC10.51 падает

Добавлено: Сб сен 17, 2022 13:08
Loopback
gogoshar

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

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

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

Добавлено: Вс сен 18, 2022 12:35
Loopback
Версия 2.2.6 beta

- исправлена обработка последнего параметра при вызове функций из Runtime
- исправлена функция Sleep для значений не кратных 10
+ дополнена функция ItemAtCursor
- исправлена функция RequestInfo
- исправлена ошибка неправильного типа с оператором not
- исправлена ошибка с унарным минусом в выражениях c операторами сравнения
- исправлена неработоспособность директивы LegacyExpression

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

Добавлено: Ср сен 21, 2022 13:54
Loopback
sa

В принципе можно переопределить любые хоткеи, можно и "Home", "End", но все же думаю ломать себе стандартный функционал никто не захочет.

Добавлено: Ср сен 21, 2022 14:00
sa
Loopback
Я имел ввиду, что Ctrl+B работает из командной строки и в стандартном функционале (без плагина). Или не так?

Добавлено: Ср сен 21, 2022 15:02
Loopback
sa
А, ну это да. Имелись в виду пользовательские сочетания, которые не работают в командной строке. А некоторые сочетания (например Win+C), у меня вообще нигде не работали, даже в панелях.

Добавлено: Ср сен 21, 2022 15:57
sa
Loopback писал(а):например Win+C
Понятно, спасибо!

Добавлено: Вс сен 25, 2022 15:26
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
В итоге создается не значение, а отдельные разделы (\ или \\ не влияет на результат).

Добавлено: Вс сен 25, 2022 23:21
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"? Подскажите, пожалуйста, может я чего недодумал.

Добавлено: Вс сен 25, 2022 23:29
Loopback
jentoso

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

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

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

MsgBox(ProcessExist("~/F", Everything))
MsgBox(ProcessExist("~/F", %EVERYTHING%))

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

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

Изображение

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