Инструменты пользователя

Инструменты сайта


ru:documentation:tweaks_controlsetmouseaction

ControlSetMouseAction

Команда добавляет действие на события мыши в окне Total Commander.

ControlSetMouseAction </R[:U|:D]|/M[:U|:D]|/L[:U|:D]|/W[:F|:B]|/X1[:U|:D]/X2[:U|:D]] [/K:<S|C|A|R|M|L|X1|X2>] [/B:<1..7>] <controlid> [<cmd> [params]]
ControlSetMouseAction </R[:U|:D]|/M[:U|:D]|/L[:U|:D]|/W[:F|:B]|/X1[:U|:D]/X2[:U|:D]] [/K:<S|C|A|R|M|L|X1|X2>] [/B:<1..7>] /C:<class> <instance> [<cmd> [params]]

Параметры

<controlid>Идентификатор контрола (см. таблицу ниже).
<instance>При использовании переключателя /C — порядковый номер экземпляра класса контрола.
<cmd>Внутренняя команда Autorun. Если не задана, то никакого действия выполняться не будет, а стандартное действие данной кнопки (например, появление контекстного меню) будет заблокировано.
<params>Параметры команды (если применимо). Параметры передаются «как есть», вычисляемые параметры вычисляются при каждом вызове команды.

Переключатели, задающие кнопки мыши

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

КнопкаМодификаторОписание
/R
/M
/L
/X1
/X2
НетЗадается нажатие правой, средней, левой и двух дополнительных кнопок мыши. Срабатывает по нажатию кнопки.
:UТо же самое, но срабатывает по отпусканию кнопки.
:DТо же самое, но срабатывает по двойному клику.
/WНетЗадается действие на вращение колеса мыши. Без модификаторов срабатывает на вращение в любую сторону.
:FТо же самое, но срабатывает по вращению колеса вперед (от себя).
:BТо же самое, но срабатывает по вращению колеса назад (к себе).

Переключатели, задающие модификаторы

/K:CДействие производится при нажатом Ctrl.
SДействие производится при нажатом Shift.
AДействие производится при нажатом Alt.
RДействие производится при нажатой правой кнопке мыши.
MДействие производится при нажатой средней кнопке мыши.
LДействие производится при нажатой левой кнопке мыши.
X1Действие производится при нажатой первой дополнительной кнопке мыши.
X2Действие производится при нажатой второй дополнительной кнопке мыши.

Модификаторы Ctrl, Shift, Alt могут использоваться в любых комбинациях, для этого можно задать переключатель несколько раз. Например, /R /K:C /K:S будут работать как Ctrl+Shift+<правая клавиша мыши>. Остальные модификаторы могут использоваться только поодиночке.

Дополнительные переключатели

/B:<1..7>Кнопка нижней панели. Используется только с идентификатором контрола 17.
/H:<area>Сумма флагов зон окна. Используется только с идентфикатором контрола 0. Возможные значения <area> в таблице ниже.
/C:<class>Класс контрола окна ТС. При заданном переключателе используется отличный от стандартного метод получения контрола. При этом первый параметр команды <instance> используется для задания экземпляра класса.

:!: Используйте этот метод, только если нужный контрол недоступен через индексы.

:!: Метод не может быть использован для получения «активного/неактивного» контрола, т.к. контрол всегда фиксированный.

:!: При изменении вида главного окна метод может работать некорректно (или вообще перестать работать) при настроенных ранее значениях: в зависимости от видимых элементов окна номера экземпляра класса могут измениться.

Идентификаторы контролов

0Окно TC. Может в т.ч. использоваться совместно с переключателем /H:<area>.
1Левая файловая панель.
2Правая файловая панель.
3Активная файловая панель.
4Неактивная файловая панель.
5Табуляторы левой панели.
6Табуляторы правой панели.
7Левая строка состояния.
8Правая строка состояния.
9Заголовок левой панели.
10Заголовок правой панели.
11Левая панель дискового пространства. :!: В настоящее время недоступна.
12Правая панель дискового пространства. :!: В настоящее время недоступна.
13Левый выпадающий список дисков.
14Правый выпадающий список дисков.
15Левая панель (доступна только при наличии открытых вкладок, зона рядом с ними).
16Правая панель (доступна только при наличии открытых вкладок, зона рядом с ними).
17Панель функциональных клавиш (с функциональными кнопками).
18Левое дерево каталогов.
19Правое дерево каталогов.
20Командная строка.
21Панель с заголовком активной панели перед командной строкой.
22Поле правки имени объекта.
23Разделитель панелей.
24Левая панель кнопок дисков.
25Правая панель кнопок дисков.
26Левая панель вкладок.
27Правая панель вкладок.
28Панель инструментов.
29Вертикальная панель инструментов.
10001Активный табулятор панели.
10002Неактивный табулятор панели.
10003Активная строка состояния.
10004Неактивная строка состояния.
10005Активный заголовок левой панели.
10006Неактивный заголовок левой панели.
10007Активная панель дискового пространства. :!: В настоящее время недоступна.
10008Неактивная панель дискового пространства. :!: В настоящее время недоступна.
10009Активный выпадающий список дисков.
10010Неактивный выпадающий список дисков.
10011Активная панель.
10012Неактивная панель.
10013Активное дерево каталогов.
10014Неактивное дерево каталогов.
10015Активная панель кнопок дисков.
10016Неактивная панель кнопок дисков.
10017Активная панель вкладок.
10018Неактивная панель вкладок.

Список флагов зон окна <area>

Флаги могут суммироваться. Например: 8 + 16 = 24, действие будет назначено на кнопки «свернуть» и «развернуть».

1Клиентская часть окна.
2Заголовок окна.
4Кнопка системного меню.
8Кнопка «Свернуть».
16Кнопка «Развернуть».
32Кнопка «Закрыть».
64Главное меню.
128Левая граница окна.
256Правая граница окна.
512Верхняя граница окна.
1024Верхний левый угол окна.
2048Верхний правый угол окна.
4096Нижняя граница окна.
8192Нижний левый угол окна.
16384Нижний правый угол окна.

Примеры

# Автор - Flasher
# Скроллинг на вкладках акт. панели = перенос активной вкладки влево/вправо:  
ControlSetMouseAction /W:B 10017 SendCommand 3015 
ControlSetMouseAction /W:F 10017 SendCommand 3016 
# Alt+скроллинг на вкладках акт. панели = переход к пред./след. вкладке:  
ControlSetMouseAction /W:F /K:A 10017 SendCommand 3005 
ControlSetMouseAction /W:B /K:A 10017 SendCommand 3006 
# Atl+ПКМ по вкладкам активной панели = заблокировать/разблокировать вкладку: 
ControlSetMouseAction /R /K:A 10017 SendCommand 3012 
# Shift+ЛКМ по вкладкам = переключение на первую вкладку в соотв. панели: 
ControlSetMouseAction /L /K:S 26 SendCommand 5201 
ControlSetMouseAction /L /K:S 27 SendCommand 5301 
# Ctrl+ПКМ по табуляторам = настроить наборы колонок: 
ControlSetMouseAction /R /K:C 5 SendCommand 483 
ControlSetMouseAction /R /K:C 6 SendCommand 483 
# Alt+ПКМ по табуляторам активной панели = настроить текущий набор колонок: 
ControlSetMouseAction /R:U /K:A 10001 SendCommand 2920 
# Ctrl+ПКМ по файловой панели = отключение сортировки в соотв. панели: 
ControlSetMouseAction /R /K:C 1 SendCommand 125 
ControlSetMouseAction /R /K:C 2 SendCommand 225 
# Alt+ПКМ по файловой панели = обратная сортировка в соотв. панели: 
ControlSetMouseAction /R /K:A 1 SendCommand 130 
ControlSetMouseAction /R /K:A 2 SendCommand 230 
# Alt+ПКМ по "активной" панели дисков = открытие 'Мой компьютер': 
ControlSetMouseAction /R /K:A 10015 SendCommand 2122 
# ПКМ по панели дискового места = открытие 'Рабочий стол' в соотв. панели (для 32-битной версии): 
ControlSetMouseAction /R /C:TMyPanel 2 CommandExec /CD :: 
ControlSetMouseAction /R /C:TMyPanel 1 CommandExec /CD "" :: 
# Alt+ЛКМ по разделителю панелей = установка равных размеров панелей: 
ControlSetMouseAction /L /K:A 23 SendCommand 909 

# Shift+СКМ всюду = переключение на главную панель инструментов, 
# где em_Bar состоит из OPENBAR1 и %A в полях Команда: и Параметры:, соотв.: 
ControlSetMouseAction /M:U /K:S 0 CommandExec em_Bar Default.bar
# Следующие две команды включают em_Lang, где OPENLANGUAGEFILE прописано в поле "Команда:", а %A в поле "Параметры:": 
# ПКМ по главному меню = обновление текущей локализации: 
ControlSetMouseAction /R /H:64 0 CommandExec em_Lang %"IniRead('~/R', %COMMANDER_INI%, Configuration, LanguageIni)" 
# Alt+ПКМ по главному меню = переключение между русским и английским языками: 
ControlSetMouseAction /R /K:A /H:64 0 ShellExec '%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe' '/ef if(tcini(Configuration,LanguageIni,`WCMD_RUS.LNG`),tem(em_Lang),tem(`em_Lang Wcmd_rus.lng`))' 

# Команды ниже идут как идеи, требуют дополнительных пользовательских команд 
# Alt+ЛКМ по вкладкам = сохранение вкладок в заданный файл в соотв. панели: 
ControlSetMouseAction /L /K:A 26 CommandExec em_SaveTabsL 
ControlSetMouseAction /L /K:A 27 CommandExec em_SaveTabsR
# СКМ по заголовку окна и упр. элементам = отображение доп. информации в заголовке: 
ControlSetMouseAction /M:U /H:62 0 CommandExec em_AddTitleInfo

Примечания

Хотя плагин оптимизировался по скорости, ввиду большого количества перехватываемых и обрабатываемых сообщений, рекомендуется по возможности минимизировать количество устанавливаемых обработчиков. Также рекомендуется наиболее часто возникающие события (например, прокрутку колесом мыши, левый клик) размещать в начале.

Ограничения

Минимальные требования: Autorun 2.0.11+, Total Commander 9.0+.

Под Windows 7 действия, назначенные на колесо мыши, не блокируют действие по умолчанию для этого контрола.

Кнопки X1/X2 могут не работать (?)

ru/documentation/tweaks_controlsetmouseaction.txt · Последние изменения: 2020/05/12 11:38 — loopback

Инструменты страницы