Снова приходится чаще использовать VBA, и после перехода с VSCode понимаешь, что очень не хватает удобых сочетаний клавиш, к которым очень привык, что не надо переключаться с клавиатуры на мышь. И, которых нет в VBE (
Я уже начинал тему с поиском решения для организации работы перехвата клавиш. Но, потом выпал из работы, и вот снова хотел бы поднять тему и подытожить, что есть на текущий момент.
Итак, задача заключается в том, чтобы перехватывать нажатия кнопок, и переводить VBE в подрежим приёма следующего нажатия.
Т.е. не просто там, Alt+Key, а активирование режима ввода подкомманд, после определённой нажатой комбинации.
Сейчас, подобное реализовано во многих код-редакторах (VSCode, MSSMS,...), а именно:
- Жмём комбинацию Ctrl+K (запущен режим ожидания подкоманды)
и, из под этого режима жмём: - Ctrl+C, тем самым, осуществляется комментирование выделенного участка кода.
Аналогично, обратное действо: - Жмём Ctrl+K (снов запущен режим ожидания подкоманды)
и, из под этого режима жмём: - Ctrl+U, теперь, осуществляется раскомментирование кода.
уважаемый член vb-шного сообщества The Trick в своё время так прокомментировал ситуацию:
Ну значит лови хоткей на Ctrl+K, через WM_HOTKEY. Как поймаешь ставь хук на клаву и там лови команды.
начинай с RegisterHotkey
и так, как нет формы, надо создать создать виртуальное окно
создаешь окно с флагом
- Код: Выделить всё
HWND_MESSAGE tData.hWnd = CreateWindowEx(0, THREAD_WND_CLASS, vbNullString, 0, 0, 0, 0, 0, HWND_MESSAGE, 0, tData.hInstance, ByVal 0&)
В общем, я сформировал проект, где смог добиться только перехвата комбинации Alt+F10 (чисто для теста).
Следующим этапом надо обеспечить поведение на сработку, только когда хоткей клацают над рабочим окном с кодом в VBE. Потому как, сейчас комбинация Alt+F10 работает глобально, даже если редактор кода свёрнут.
Потом уже, надо както отлавливать hook.
Народ, без вас не справится одному. А VBE никого не интересует в MS ), надежда только на энтузиастов.