Сообщество программистов Autodesk в СНГ

ADN Club => Inventor API => Тема начата: filat от 08-06-2021, 18:16:05

Название: События клавиатуры в AddIn
Отправлено: filat от 08-06-2021, 18:16:05
У меня есть стандартный модуль keyboardhook для отлавливания нажатия кнопок клавиатуры, который я использовал в других приложениях. Но подключить его в AddIn оказалось проблемным - полезли не понятные ошибки в коде.
В принципе, есть рабочий способ, чтобы поймать нажатие кнопки клавиатуры в AddIn?
Название: Re: События клавиатуры в AddIn
Отправлено: mikazakov от 08-06-2021, 18:25:28
Пространный вопрос, Влад.
В общем случае конечно WinAPI32 юзать нужно.
Но ты объясни что ты там делаешь, может инвенторовского АПИ хватит.
Название: Re: События клавиатуры в AddIn
Отправлено: filat от 08-06-2021, 18:44:50
keyboardhook - это и есть WinApi.
В чертеже, для выносной позиции можно добавить еще одну позицию, вызвав соответствующую команду. Я хочу сделать так, чтоб при нажатой кнопке (например Ctrl) автоматически повторялся вызов этой компнды, для данной выносной позиции.
Название: Re: События клавиатуры в AddIn
Отправлено: Александр Ривилис от 08-06-2021, 19:07:48
Я хочу сделать так, чтоб при нажатой кнопке (например Ctrl) автоматически повторялся вызов этой компнды, для данной выносной позиции.
Так тебе просто нужно прочитать текущее состояние Ctrl (нажато/не нажато) ? Тогда тебе подойдет функция GetAsyncKeyState.
Название: Re: События клавиатуры в AddIn
Отправлено: Александр Ривилис от 08-06-2021, 19:19:29
Ну а если тебя интересует таки событие (низкоуровневое) нажатия клавиш, то SetWindowsHookEx/CallNextHookEx/UnhookWindowsHookEx тебе в помощь.
На VB.NET есть пример здесь: https://github.com/Visual-Vincent/InputHelper
Название: Re: События клавиатуры в AddIn
Отправлено: filat от 08-06-2021, 19:24:27
Сейчас функцию буду пробовать - должно подойти! :)
Название: Re: События клавиатуры в AddIn
Отправлено: filat от 08-06-2021, 21:05:00
Спасибо! Всё получилось!  8)