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 могут не работать (?)