Кнопка,работающая с учетом нажатых клавиш
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
- Monarch-LFV
- Сообщения: 360
- Зарегистрирован: Пн июл 22, 2019 13:20
Кнопка,работающая с учетом нажатых клавиш
Может быть уже была такая же тема (даже не может быть, а скорее всего): как сделать кнопку на панели, функции которой будут различными в зависимости от зажатых на клавиатуре клавиш. То есть, например, обычное нажатие на кнопку - выполняется одна команда, а с зажатым Shift’ом - другая. Если где-то уже обсуждалось прошу навести, так не смог найти.
Monarch-LFV
Нормальными способами никак не сделать. Из, скажем так, менее нормальных, известно, например, вот это. Я не пользовался и не собираюсь, так что — всяческих успехов в самостоятельном изучении, а с моей стороны больше никаких комментариев.
Нормальными способами никак не сделать. Из, скажем так, менее нормальных, известно, например, вот это. Я не пользовался и не собираюсь, так что — всяческих успехов в самостоятельном изучении, а с моей стороны больше никаких комментариев.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
- Monarch-LFV
- Сообщения: 360
- Зарегистрирован: Пн июл 22, 2019 13:20
- Вахмурка
- Сообщения: 2587
- Зарегистрирован: Пн дек 27, 2004 14:47
- Откуда: Большая деревня Москва
- Контактная информация:
Re: Кнопка на панели с разными параметрами
2Monarch-LFV
https://disk.yandex.ru/d/RKtNypXSTndKXQ
https://disk.yandex.ru/d/RKtNypXSTndKXQ
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
- Monarch-LFV
- Сообщения: 360
- Зарегистрирован: Пн июл 22, 2019 13:20
Вахмурка
О! То что нужно, спасибо!
Единственное, нужно заморочиться с созданием пользовательских команд, коих у меня будет немало.
Просто пользую консольную утилиту CPDF, для нее наделал много батников и, соответственно, кнопок с разным функционалом, но для каждой еще хотелось бы иметь вариации, типа:
1. Выходные файлы будут заменять исходные - просто нажатие
2. Выходные файлы записываются в отдельную папку - нажатие c CTRL
3. Выходные файлы записываются в ту же директорию, где исходные, но с добавлением суффикса в имени файла - нажатие с SHIFT
И еще нюанс, если в батнике прописать запрос на ввод данных, то при нажатии с CTRL или ALT или SHIFT - теряется фокус окна консоли (немного раздражает), поэтому надо придумывать батники без ввода - как всегда, костыли.
О! То что нужно, спасибо!
Единственное, нужно заморочиться с созданием пользовательских команд, коих у меня будет немало.
Просто пользую консольную утилиту CPDF, для нее наделал много батников и, соответственно, кнопок с разным функционалом, но для каждой еще хотелось бы иметь вариации, типа:
1. Выходные файлы будут заменять исходные - просто нажатие
2. Выходные файлы записываются в отдельную папку - нажатие c CTRL
3. Выходные файлы записываются в ту же директорию, где исходные, но с добавлением суффикса в имени файла - нажатие с SHIFT
И еще нюанс, если в батнике прописать запрос на ввод данных, то при нажатии с CTRL или ALT или SHIFT - теряется фокус окна консоли (немного раздражает), поэтому надо придумывать батники без ввода - как всегда, костыли.
- Вахмурка
- Сообщения: 2587
- Зарегистрирован: Пн дек 27, 2004 14:47
- Откуда: Большая деревня Москва
- Контактная информация:
2Админ(ы)
Данную утилиту я нашел убей не помню на каком ресурсе, но сейчас найти не смог нигде (даже на totalcmd.net), кроме как у себя на диске. Почему бы не выложить ее на сайте?
Данную утилиту я нашел убей не помню на каком ресурсе, но сейчас найти не смог нигде (даже на totalcmd.net), кроме как у себя на диске. Почему бы не выложить ее на сайте?
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
- LonerD
- Сообщения: 1173
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
Например, вот так оформляется выполнение двух em-команд, одна при простом нажатии левой кнопкой мыши, вторая - при одновременном зажатии ПКМ, СКМ, Ctrl или Shift.Monarch-LFV писал(а):А вот про TCFS2 интересно, можно поподробнее, как сделать такую кнопку?
Код: Выделить всё
[em_myCommand]
cmd=%commander_path%\Plugins\exe\TCFS2\TCFS2.exe /ef "tem(em_myCommand1), test(pressedCtrl || pressedShift || pressedMButton || pressedRButton) | tcm(em_myCommand2)"Windows 11 | TC DreamLair eternal pre-α
Обсуждается привлечение сторонних средств автоматизации, явно выходящие за рамки стандартного поведения. (К стандарту относится только поведение кнопки, выполняющей с разными клавишами команду cm_Pack, но об этом предостаточно сказано в других местах.) В "Общих вопросах" теме делать нечего, она переносится в "Автоматизацию". Заголовок вместо прежнего "Кнопка на панели с разными параметрами" сделан более вразумительным.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Откуда: Москва
- Контактная информация:
В свойствах файла упомянут Zmy; подозреваю, что утилита написана этим участником. Он регулярно выкладывает тут всякие мелкие программки на мэйлрушное облако, с которого потом всё удаляет; скорее всего, это одна из них. Лучше обратиться к нему (правда, не помню, есть ли у него аккаунт на сайте; но если нету, можно завести).Вахмурка писал(а):2Админ(ы)
Данную утилиту я нашел убей не помню на каком ресурсе, но сейчас найти не смог нигде (даже на totalcmd.net), кроме как у себя на диске. Почему бы не выложить ее на сайте?
Почему же, ё-моё, ты нигде не пишешь "ё"?
А возможна сцепка из трёх команд? Например, ЛКМ — выделить всё, Ctrl+ЛКМ — снять выделение, Shift+ЛКМ — восстановить выделение?LonerD писал(а): Например, вот так оформляется выполнение двух em-команд, одна при простом нажатии левой кнопкой мыши, вторая - при одновременном зажатии ПКМ, СКМ, Ctrl или Shift.В файле TCFS2.Core.ini можно дописать варианты с разными клавишами клавиатуры.Код: Выделить всё
[em_myCommand] cmd=%commander_path%\Plugins\exe\TCFS2\TCFS2.exe /ef "tem(em_myCommand1), test(pressedCtrl || pressedShift || pressedMButton || pressedRButton) | tcm(em_myCommand2)"
Да, возможна. Там можно указать произвольную последовательность действий, для некоторых из которых с помощью функции if() можно писать произвольные условия, а если просто один параметр какой-то функции в зависимости от условия, можно просто тернарным оператором воспользоваться. Вот три варианта сделать это (первый позволяет произвольные действия выполнять в каждом случае, второй и третий - только CM-команды):
Код: Выделить всё
; Зажат Ctrl - вызывается cm_ClearAll, а если Shift - cm_RestoreSelection, иначе - cm_SelectAll
TCFS2 /ef "if(pressedCtrl, tcm(524), if(pressedShift, tcm(529), tcm(523)))"
TCFS2 /ef "tcm(if(pressedCtrl, 524, if(pressedShift, 529, 523)))"
TCFS2 /ef "tcm(pressedCtrl ? 524 : (pressedShift ? 529 : 523))"Пример кнопки с TCFS2 + TCFS2Tools или вот ещё:
Если при клике на кнопку не нажата клавиша Alt, то поиск в каталоге под курсором начнётся сразу (с текущими настройками). Для изменения настроек поиска в диалоге требуется дополнительное нажатие Alt.
P.S.
Случайно заметил, что команда "Поиск файлов в каталоге под курсором" (cm_SearchForInCurdir, а точнее её числовой индекс 517) работает и в старых версиях TC (даже в 4.03 - более древней под руками не оказалось). Тогда как упоминание о добавлении команды появилось лишь в версии 9.02 beta (15.06.16).
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "if(pressedAlt, varset(1,1), varset(1,0)) tcm(524) tcm(517,1) eval(settext_wait(`Поиск файлов в каталоге под курсором`,findwnd(`TFindFile`))) if(varget(1)==0,sendmsg(findwnd(`TButton`,,findwnd(`TFindFile`),2),$F5))"
WCMICONS.DLL,47
Поиск файлов в каталоге под курсором |(без Alt - сразу после открытия диалога начать поиск)P.S.
Случайно заметил, что команда "Поиск файлов в каталоге под курсором" (cm_SearchForInCurdir, а точнее её числовой индекс 517) работает и в старых версиях TC (даже в 4.03 - более древней под руками не оказалось). Тогда как упоминание о добавлении команды появилось лишь в версии 9.02 beta (15.06.16).