Autorun

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

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

Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Ух ты, как много поменялось со вчерашнего дня!
А у меня жалоба на 2.1.1, но если надо могу перепроверить на новой 2.2.х.
Вызываю Распаковку архива кликом по кнопке F6 с зажатым Alt

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

ControlSetMouseAction /L:U /K:A 17 /B:4 SendCommand 509
Диалог открывается, но на нажатие клавиш Enter, Esc, Tab не реагирует. Надо по нему кликнуть мышкой, только тогда он «отмирает». Смотришь на него — он вроде в фокусе, а на самом деле фокуса на нём нет. Причём, если мышкой кликнуть по любой кнопке (в том числе по красной закрывающей), то ничего не сработает, только со второго клика.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):На самом деля я вроде и не давал каких-то конкретных обещаний.
Если под конкретными ты понимаешь временны́е, то, разумеется, нет. ;)
Loopback писал(а):Да и что-то та тема уже несколько поднадоела
Какая та? Вызов списка команд через запятую или какая?
Loopback писал(а):Можно без скобок командой (если не нужно возвращаемое значение), можно со скобками:
Хорошо. А под "можно сделать" я имел в виду запрос, а не нынешнюю правку конфига.
Loopback писал(а):Но что-то мне подсказывает, что сейчас оно как-то не как задумано работает...
Позже оценю тогда.
Loopback писал(а):но как выяснилось, возможны менее болезненные варианты.
Значит, тогда я был ближе к истине. ;)


yozhik
Это опять же с Alt и фокусировкой на главном меню связано, как в случае с фиксом в отношении прокрутки вкладок.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Flasher
У кнопки F5 этот функционал с клавишами — родной. И когда с Alt по F5 щёлкаешь, то всё работает.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

yozhik
Я понимаю. Это суть моих слов не меняет.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Loopback
Я тут ещё мелочь заметил, похоже ускользнула от внимания. В справке на странице «Стандартные плагины»
В дистрибутив уже включены три плагина.
Наверное вы забыли добавить строчку про Tweaks. Ну, и «три» бампнуть :) .
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Какая та?
Меню по комбинациям кнопок. Или отдельная утилита, что в общем небольшая разница.
Flasher писал(а):Вызов списка команд
Если имеется в виду это, то сейчас как раз легко решается функциями.
Flasher писал(а):А под "можно сделать" я имел в виду запрос, а не нынешнюю правку конфига.
Не понял.
yozhik писал(а):Вызываю Распаковку архива кликом по кнопке F6 с зажатым Alt
Да, все эти проблемы в стандартном действии одиночного альта. В такой комбинации при отпускании альта фокус явно передается основному окну, соответственно, новое окно не обрабатывает нажатия. Как такой вариант можно исправить в при существующей реализации я не очень представляю. Если не критично использование события именно по отпусканию левой кнопки, то по событию нажатия (просто /L) всё работает корректно.
yozhik писал(а):Ну, и «три» бампнуть
Точно, поправил на "несколько" (на будущее, так сказать) + новый добавил.
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Loopback писал(а):Если не критично... именно по отпусканию...
Абсолютно не критично. Это уж так подумалось, что, мол, иногда редко, но бывает, что нажал на кнопку и вдруг передумал, и тогда не отпуская ЛКМ отводишь в сторону и она не срабатывает. Сделал с просто /L — работает замечательно, всем доволен. Спасибо.

В качестве идеи (у меня, правда, технические идеи не очень обычно получаются, но вдруг в этот раз народ поддержит и вы заинтересуетесь). Сейчас с Tweaks нижнюю панель с F-кнопками (и не только её) стало возможным сделать очень функциональной. Как бы сами напрашиваются всплывающие хинты к кнопкам, где можно было бы подсмотреть шпаргалку про существующие возможности. Было бы, наверное, всем очень удобно (в первую очередь мне)). А если бы ещё в этих хинтах был перенос строк и табы для хоткеев вправо, то вообще б красота. Может быть, это не сложно было бы реализовать :roll: . Например, для F5 уже четыре строчки имеются, причём родного функционала:

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

Copy              <click>
Create shortcut   Ctrl+<click>
Pack              Alt+<click>
Pack in place     Alt+Ctrl+<click>
А с Tweaks и того больше можно...
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Меню по комбинациям кнопок.
Понял.
Loopback писал(а):Если имеется в виду это, то сейчас как раз легко решается функциями.
Не только это. Но это, мягко говоря, не одно и то же. Дело же не только в возможности вызова самой последовательности, но и в короткой записи по аналогии с ТС.
Loopback писал(а):Не понял.
Ну, ты объясняешь, что сейчас нельзя сделать. Я это изначально предполагал, поэтому скорее запрашивал на будущее, чем спрашивал о нынешнем вызове.
yozhik писал(а):Сделал с просто /L — работает замечательно
Хех. Я бы точно не начинал тестировать с параметром отпускания, думал, у остальных так же, и даже предлагать не стал. Изображение
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):но и в короткой записи по аналогии с ТС.
А, ну понятно. Я-то думал ехать, а тут шашечки :)
Flasher писал(а):Ну, ты объясняешь, что сейчас нельзя сделать.
Нельзя, и маловероятно, что будет можно. Альтернатива - введение обязательного разделителя функций (как ";" в паскале или С, сейчас это конец строки) и чего-то подобного анонимным функциям или, как минимум, синтаксиса для задания блока. К тому же тогда нельзя будет записать команду классическим методом, только функциональным, чтобы парсер мог добраться до блока. Да и скорее всего, от классического метода совсем придется отказаться. Стоит ли это возможности запихнуть всё в одну строку? Мне ответ очевиден.

Если уж так хочется всё сократить до строки, можно сделать универсальную библиотечную функцию с нужными параметрами и результатом и использовать её в нужных местах.
yozhik писал(а):В качестве идеи
Ну в принципе идея имеет место быть, но насколько это окажется сложно - надо смотреть. Системный метод вывода подсказок вряд ли заработает, т.к. у контролов дельфи свои механизмы, а на функциональных клавишах не заработает точно, т.к. весь все они - один контрол. В общем это точно не сейчас.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):а тут шашечки
Они самые. :D
Loopback писал(а):только функциональным
То бишь в скобках? Это разве плохо?
Loopback писал(а):Да и скорее всего, от классического метода совсем придется отказаться.
В контексте параметра или вообще во всём синтаксисе конфига?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а): Это разве плохо?
Не то чтобы плохо, но нецелесообразно. В развесистых командах типа AddControl командный синтаксис удобнее. Опять же, потеря совместимости, ибо:
Flasher писал(а):В контексте параметра или вообще во всём синтаксисе конфига?
Во всем. Не делать же в парсере исключение под одну конкретную функцию.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Не делать же в парсере исключение под одну конкретную функцию.
Почему одну? Ещё вложенные if-ы есть. :) Можно же подкомандые if-ы отдельно написать. Нет?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Loopback

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

ControlSetMouseAction /L /K:S 17 /B:7 CommandExec em_TCRestart
В 2.1.1 работает, а в 2.2.1 не хочет.

DisableMarkedMenuItems поставил перед группой команд ControlSetMouseAction — не сработал. Поставил после — сработал. Если так и должно быть, может стоит в справке упомянуть про строгую последовательность?
Loopback писал(а):а на функциональных клавишах не заработает точно
А может тогда несложно и уместно сделать чтоб DisableMarkedMenuItems рапространялся и на менюшки ShowPopupMenu? Тогда можно было бы шпаргалку из неактивных пунктов сделать. Костыль, конечно, но рабочий и вполне симпатичный.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher
С вложенными If-ами нет проблем. Что за подкомандные не знаю.

В общем это, наверно, не так просто объяснить. If..Then, даже однострочный, это по-сути блок кода. В параметрах команд/функций могут быть любые выражения, но не блоки. Поддержку блоков можно было бы сделать, если бы был разделитель команд типа ";". Сейчас разделитель конец строки, с ним не получится. Никак.

В Autoit такой же принцип и те же ограничения. Вот то, что ты предлагаешь, и оно так же не будет работать.

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

$a = 1
Test(123, If $a < 0 Then $b = 1)

Func Test($a, $b)
EndFunc
yozhik
Занятно, у меня работает. Ну на то она и бета.

Единственное что могу предположить, что парсер сбивается на какой-то особенности вашего конфига. Если попробовать чистый конфиг, только с загрузкой Tweaks, будет работать?

Строгой последовательности здесь нет, но теоретически возможно, что на момент запуска DisableMarkedMenuItems тотал еще не создал меню. Имеет смысл расположить DisableMarkedMenuItems где-нибудь в самом конце, а возможно, даже поставить перед ним задержку. Пожалуй, это можно и в самом деле документировать.
DisableMarkedMenuItems рапространялся и на менюшки ShowPopupMenu
С этой командой не получится. Чисто теоретически, можно добавить поддержку функционала DisableMarkedMenuItems в ShowPopupMenu (она же создает элементы меню), но не очень хотелось бы загромождать команду. Ну можно будет подумать.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

yozhik писал(а):чтоб DisableMarkedMenuItems рапространялся и на менюшки ShowPopupMenu? Тогда можно было бы шпаргалку из неактивных пунктов сделать.
Я на днях тоже об этом думал, было бы удобно (если бы ещё у меня работало :lol:).
Loopback писал(а):Что за подкомандные не знаю.
Отдельно написанная if-функция под команды, не из блочного синтаксиса:

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

ControlSetMouseAction /R /K:A /H:64 0 if(%"IniRead('~/R',%COMMANDER_INI%,Configuration,LanguageIni)"=WCMD_RUS.LNG,CommandExec(em_Lang),CommandExec('em_Lang Wcmd_rus.lng'))
ControlSetMouseAction ... if(%AUTORUN_TCPID%=32,ShellExec('~/SW_HIDE',prog.exe),ShellExec('~/SW_HIDE',prog64.exe))
Последний раз редактировалось Flasher Чт июн 04, 2020 00:25, всего редактировалось 3 раза.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить