Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Кнопка,работающая с учетом нажатых клавиш

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 227

Post (Separately) Posted: Wed Jun 23, 2021 15:36    Post subject: Кнопка,работающая с учетом нажатых клавиш Reply with quote

Может быть уже была такая же тема (даже не может быть, а скорее всего): как сделать кнопку на панели, функции которой будут различными в зависимости от зажатых на клавиатуре клавиш. То есть, например, обычное нажатие на кнопку - выполняется одна команда, а с зажатым Shift’ом - другая. Если где-то уже обсуждалось прошу навести, так не смог найти.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Wed Jun 23, 2021 17:40    Post subject: Reply with quote

Monarch-LFV
Нормальными способами никак не сделать. Из, скажем так, менее нормальных, известно, например, вот это. Я не пользовался и не собираюсь, так что — всяческих успехов в самостоятельном изучении, а с моей стороны больше никаких комментариев.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Wed Jun 23, 2021 18:28    Post subject: Reply with quote

Помимо вышеупомянутого скрипта ButtonBar eXtended, ещё в TCFS2 есть такой функционал.
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 227

Post (Separately) Posted: Thu Jun 24, 2021 06:55    Post subject: Reply with quote

Avada
Спасибо за наводку, попробовал ее - не совсем то, что нужно, да и не работает с вертикальной панелью (в 2011 году ее еще не было).
LonerD
А вот про TCFS2 интересно, можно поподробнее, как сделать такую кнопку? Мануал не короткий, да и ветка содержит 128 страниц, искать нужное сложно.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Thu Jun 24, 2021 07:41    Post subject: Re: Кнопка на панели с разными параметрами Reply with quote

2Monarch-LFV
https://disk.yandex.ru/d/RKtNypXSTndKXQ
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 227

Post (Separately) Posted: Thu Jun 24, 2021 08:31    Post subject: Reply with quote

Вахмурка
О! То что нужно, спасибо!
Единственное, нужно заморочиться с созданием пользовательских команд, коих у меня будет немало.
Просто пользую консольную утилиту CPDF, для нее наделал много батников и, соответственно, кнопок с разным функционалом, но для каждой еще хотелось бы иметь вариации, типа:
1. Выходные файлы будут заменять исходные - просто нажатие
2. Выходные файлы записываются в отдельную папку - нажатие c CTRL
3. Выходные файлы записываются в ту же директорию, где исходные, но с добавлением суффикса в имени файла - нажатие с SHIFT
И еще нюанс, если в батнике прописать запрос на ввод данных, то при нажатии с CTRL или ALT или SHIFT - теряется фокус окна консоли (немного раздражает), поэтому надо придумывать батники без ввода - как всегда, костыли. Rolling Eyes
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Thu Jun 24, 2021 09:06    Post subject: Reply with quote

2Админ(ы)
Данную утилиту я нашел убей не помню на каком ресурсе, но сейчас найти не смог нигде (даже на totalcmd.net), кроме как у себя на диске. Почему бы не выложить ее на сайте?
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Sat Jun 26, 2021 01:39    Post subject: Reply with quote

Monarch-LFV wrote:
А вот про TCFS2 интересно, можно поподробнее, как сделать такую кнопку?

Например, вот так оформляется выполнение двух em-команд, одна при простом нажатии левой кнопкой мыши, вторая - при одновременном зажатии ПКМ, СКМ, Ctrl или Shift.
Code:
[em_myCommand]
cmd=%commander_path%\Plugins\exe\TCFS2\TCFS2.exe /ef "tem(em_myCommand1), test(pressedCtrl || pressedShift || pressedMButton || pressedRButton) | tcm(em_myCommand2)"

В файле TCFS2.Core.ini можно дописать варианты с разными клавишами клавиатуры.
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Sat Jun 26, 2021 05:45    Post subject: Reply with quote

Обсуждается привлечение сторонних средств автоматизации, явно выходящие за рамки стандартного поведения. (К стандарту относится только поведение кнопки, выполняющей с разными клавишами команду cm_Pack, но об этом предостаточно сказано в других местах.) В "Общих вопросах" теме делать нечего, она переносится в "Автоматизацию". Заголовок вместо прежнего "Кнопка на панели с разными параметрами" сделан более вразумительным.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Wed Jul 07, 2021 03:23    Post subject: Reply with quote

Вахмурка wrote:
2Админ(ы)
Данную утилиту я нашел убей не помню на каком ресурсе, но сейчас найти не смог нигде (даже на totalcmd.net), кроме как у себя на диске. Почему бы не выложить ее на сайте?

В свойствах файла упомянут Zmy; подозреваю, что утилита написана этим участником. Он регулярно выкладывает тут всякие мелкие программки на мэйлрушное облако, с которого потом всё удаляет; скорее всего, это одна из них. Лучше обратиться к нему (правда, не помню, есть ли у него аккаунт на сайте; но если нету, можно завести).
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
HEXFIX



Joined: 25 Jun 2010
Posts: 173
Location: Калининград

Post (Separately) Posted: Fri Jul 30, 2021 19:30    Post subject: Reply with quote

LonerD wrote:

Например, вот так оформляется выполнение двух em-команд, одна при простом нажатии левой кнопкой мыши, вторая - при одновременном зажатии ПКМ, СКМ, Ctrl или Shift.
Code:
[em_myCommand]
cmd=%commander_path%\Plugins\exe\TCFS2\TCFS2.exe /ef "tem(em_myCommand1), test(pressedCtrl || pressedShift || pressedMButton || pressedRButton) | tcm(em_myCommand2)"

В файле TCFS2.Core.ini можно дописать варианты с разными клавишами клавиатуры.


А возможна сцепка из трёх команд? Например, ЛКМ — выделить всё, Ctrl+ЛКМ — снять выделение, Shift+ЛКМ — восстановить выделение?
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Thu Aug 05, 2021 12:12    Post subject: Reply with quote

Да, возможна. Там можно указать произвольную последовательность действий, для некоторых из которых с помощью функции if() можно писать произвольные условия, а если просто один параметр какой-то функции в зависимости от условия, можно просто тернарным оператором воспользоваться. Вот три варианта сделать это (первый позволяет произвольные действия выполнять в каждом случае, второй и третий - только CM-команды):
Code:
; Зажат 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: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2563

Post (Separately) Posted: Fri Aug 06, 2021 09:42    Post subject: Reply with quote

Пример кнопки с TCFS2 + TCFS2Tools или вот ещё:
Code:
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 - сразу после открытия диалога начать поиск)
Если при клике на кнопку не нажата клавиша Alt, то поиск в каталоге под курсором начнётся сразу (с текущими настройками). Для изменения настроек поиска в диалоге требуется дополнительное нажатие Alt.
P.S.
Случайно заметил, что команда "Поиск файлов в каталоге под курсором" (cm_SearchForInCurdir, а точнее её числовой индекс 517) работает и в старых версиях TC (даже в 4.03 - более древней под руками не оказалось). Тогда как упоминание о добавлении команды появилось лишь в версии 9.02 beta (15.06.16).
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group