====== ControlSetMouseAction ====== Команда добавляет действие на события мыши в окне Total Commander. ControlSetMouseAction ] [/B:<1..7>] [ [params]] ControlSetMouseAction ] [/B:<1..7>] /C: [ [params]] **Параметры** |< 100% 15% >| ||Идентификатор контрола (см. таблицу ниже).| ||При использовании переключателя /C --- порядковый номер экземпляра класса контрола.| ||Внутренняя команда Autorun. Если не задана, то никакого действия выполняться не будет, а стандартное действие данной кнопки (например, появление контекстного меню) будет заблокировано.| ||Параметры команды (если применимо). Параметры передаются "как есть", вычисляемые параметры вычисляются при каждом вызове команды.| **Переключатели, задающие кнопки мыши** Переключатели задают кнопку мыши или прокрутку колеса. Переключатель обязателен и может быть только один, при указании более одного будет применён последний. |< 100% 15% 10%>| ^Кнопка^Модификатор^Описание^ |/R\\ /M\\ /L\\ /X1\\ /X2|Нет|Задается нажатие правой, средней, левой и двух дополнительных кнопок мыши. Срабатывает по нажатию кнопки.| |:::|:U|То же самое, но срабатывает по отпусканию кнопки.| |:::|:D|То же самое, но срабатывает по двойному клику.| |/W|Нет|Задается действие на вращение колеса мыши. Без модификаторов срабатывает на вращение в любую сторону.| |:::|:F|То же самое, но срабатывает по вращению колеса вперед (от себя).| |:::|:B|То же самое, но срабатывает по вращению колеса назад (к себе).| **Переключатели, задающие модификаторы** |< 100% 15% >| |/K:|C|Действие производится при нажатом Ctrl.| |:::|S|Действие производится при нажатом Shift.| |:::|A|Действие производится при нажатом Alt.| |:::|R|Действие производится при нажатой правой кнопке мыши.| |:::|M|Действие производится при нажатой средней кнопке мыши.| |:::|L|Действие производится при нажатой левой кнопке мыши.| |:::|X1|Действие производится при нажатой первой дополнительной кнопке мыши.| |:::|X2|Действие производится при нажатой второй дополнительной кнопке мыши.| Модификаторы Ctrl, Shift, Alt могут использоваться в любых комбинациях, для этого можно задать переключатель несколько раз. Например, /R /K:C /K:S будут работать как Ctrl+Shift+<правая клавиша мыши>. Остальные модификаторы могут использоваться только поодиночке. **Дополнительные переключатели** |< 100% 15% >| |/B:<1..7>|Кнопка нижней панели. Используется только с идентификатором контрола 17.| |/H:|Сумма флагов зон окна. Используется только с идентфикатором контрола 0. Возможные значения в таблице ниже.| |/C:|Класс контрола окна ТС. При заданном переключателе используется отличный от стандартного метод получения контрола. При этом первый параметр команды **** используется для задания экземпляра класса.\\ \\ :!: Используйте этот метод, только если нужный контрол недоступен через индексы.\\ \\ :!: Метод не может быть использован для получения "активного/неактивного" контрола, т.к. контрол всегда фиксированный.\\ \\ :!: При изменении вида главного окна метод может работать некорректно (или вообще перестать работать) при настроенных ранее значениях: в зависимости от видимых элементов окна номера экземпляра класса могут измениться.| **Идентификаторы контролов** {{tc_window_index_ru.png|}} |0|Окно TC. Может в т.ч. использоваться совместно с переключателем /H:.| |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|Неактивная панель вкладок.| **Список флагов зон окна ** Флаги могут суммироваться. Например: 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 могут не работать (?)