Добавлено: Пн мар 16, 2020 23:14
И снова здравствуйте :)
Наконец, новая версия:
Также выкладываю тестовую версию нового подплагина, позволяющего назначать на различные элементы главного окна тотала действия мышью. В процессе обновления своей сборки на 9.50 наткнулся на просторах на одну утилитку на Аutoit (rcmenuimg), предоставляющую похожий функционал. На функциональных кнопках она у меня так и не заработала, а там где заработала - работала как-то не очень устойчиво, да еще и лишний процесс в памяти. Но сама идея зацепила, особенно возможность назначить контекстные меню на незадействованные функциональные кнопки.
Предварительный синтасксис:
/R /L /M - соответствующие кнопки мыши, срабатывает на нажатие
/R:U /L:U /M:U - то же, но на отпускание
/R:D /L:D /M:D - даблклик
/W - колесо (в любую сторону)
/W:F - колесо вперед
/W:R - колесо назад
Для всех вариантов возможны модификаторы:
/K:C /K:S /K:A - Ctrl, Shift, Alt
Для колеса как модификаторы также можно использовать другие кнопки мыши
/K:R /K:L /K:M /K:X1 /K:X2
Теоретически, если верить Microsoft, их можно и как комбинацию для других кнопок мыши использовать, но я что-то с трудом такой вариант представляю.
Специальный параметр:
/B:1 - /B:7
Применяется для указания нужной кнопки на нижней панели.
<индекс контрола> - в тотале 9.0, оказывается, появилась возможность быстро, надежно и единообразно для любой битности получать хэндлы элементов окна через сообщение WM_USER+50. Список индексов, найден на ghisler.ch:
[cut]
1: returns window handle of control: leftlist,
2: returns window handle of control: rightlist,
3: returns window handle of control: active list,
4: returns window handle of control: inactive list,
5: returns window handle of control: leftheader,
6: returns window handle of control: rightheader,
7: returns window handle of control: leftsize,
8: returns window handle of control: rightsize,
9: returns window handle of control: leftpath,
10: returns window handle of control: rightpath,
11: returns window handle of control: leftinfo,
12: returns window handle of control: rightinfo,
13: returns window handle of control: leftdrives,
14: returns window handle of control: rightdrives,
15: returns window handle of control: leftpanel,
16: returns window handle of control: rightpanel,
17: returns window handle of control: bottompanel,
18: returns window handle of control: lefttree,
19: returns window handle of control: righttree,
20: returns window handle of control: cmdline,
21: returns window handle of control: curdirpanel,
22: returns window handle of control: inplaceedit,
23: returns window handle of control: splitpanel,
24: returns window handle of control: leftdrivepanel,
25: returns window handle of control: rightdrivepanel,
26: returns window handle of control: lefttabs,
27: returns window handle of control: righttabs,
28: returns window handle of control: buttonbar,
29: returns window handle of control: buttonbarvertical,
[/cut]
Сначала начал делать "классическим" методом, Class+Instance, но потом обнаружил эту замечательную возможность. Старый метод буду убирать, все элементы главного окна доступны новым методом.
В принципе, интересует, как оно вообще работает на других конфигурациях, нет ли конфликтов. Я тестировал два дня на своей рабочей конфигурации и каких-то проблем не заметил.
Примеры:
Открывает меню через утилиту TcPopupMenu по правому клику на кнопке выхода в нижней панели.
Листает колесом историю каталогов при наведении на левую панель размера файлов и нажатой правой кнопке мыши (аналогично встроенной возможности листать историю колесом с зажатым Shift).
Наконец, новая версия:
Код: Выделить всё
2.0.8
+ добавлена команда StrPart
+ добавлена команда GetCpuInfo в плагин Sysinfo
Предварительный синтасксис:
Код: Выделить всё
ControlSetMouseAction [switches] "" <индекс контрола> <CMD|EMCMD> <команда>/R:U /L:U /M:U - то же, но на отпускание
/R:D /L:D /M:D - даблклик
/W - колесо (в любую сторону)
/W:F - колесо вперед
/W:R - колесо назад
Для всех вариантов возможны модификаторы:
/K:C /K:S /K:A - Ctrl, Shift, Alt
Для колеса как модификаторы также можно использовать другие кнопки мыши
/K:R /K:L /K:M /K:X1 /K:X2
Теоретически, если верить Microsoft, их можно и как комбинацию для других кнопок мыши использовать, но я что-то с трудом такой вариант представляю.
Специальный параметр:
/B:1 - /B:7
Применяется для указания нужной кнопки на нижней панели.
<индекс контрола> - в тотале 9.0, оказывается, появилась возможность быстро, надежно и единообразно для любой битности получать хэндлы элементов окна через сообщение WM_USER+50. Список индексов, найден на ghisler.ch:
[cut]
1: returns window handle of control: leftlist,
2: returns window handle of control: rightlist,
3: returns window handle of control: active list,
4: returns window handle of control: inactive list,
5: returns window handle of control: leftheader,
6: returns window handle of control: rightheader,
7: returns window handle of control: leftsize,
8: returns window handle of control: rightsize,
9: returns window handle of control: leftpath,
10: returns window handle of control: rightpath,
11: returns window handle of control: leftinfo,
12: returns window handle of control: rightinfo,
13: returns window handle of control: leftdrives,
14: returns window handle of control: rightdrives,
15: returns window handle of control: leftpanel,
16: returns window handle of control: rightpanel,
17: returns window handle of control: bottompanel,
18: returns window handle of control: lefttree,
19: returns window handle of control: righttree,
20: returns window handle of control: cmdline,
21: returns window handle of control: curdirpanel,
22: returns window handle of control: inplaceedit,
23: returns window handle of control: splitpanel,
24: returns window handle of control: leftdrivepanel,
25: returns window handle of control: rightdrivepanel,
26: returns window handle of control: lefttabs,
27: returns window handle of control: righttabs,
28: returns window handle of control: buttonbar,
29: returns window handle of control: buttonbarvertical,
[/cut]
Сначала начал делать "классическим" методом, Class+Instance, но потом обнаружил эту замечательную возможность. Старый метод буду убирать, все элементы главного окна доступны новым методом.
В принципе, интересует, как оно вообще работает на других конфигурациях, нет ли конфликтов. Я тестировал два дня на своей рабочей конфигурации и каких-то проблем не заметил.
Примеры:
Код: Выделить всё
ControlSetMouseAction /R /B:7 "" 17 EMCMD em_tcutils_tcmenupopup %COMMANDER_PATH%\Config\Exit.mnuКод: Выделить всё
ControlSetMouseAction /W:F /K:R "" 7 CMD 570
ControlSetMouseAction /W:R /K:R "" 7 CMD 571