В вашем случае, скорее всего, подойдет Raw Input.У меня нет опыта работы с ним, кроме того, что я знаю о его ограничениях относительно возможности захвата ввода, но не смог предотвратить его создания после того, как вы его захватили, что означает, что нажатия клавиш и события мыши будут происходить для другихприложения, даже если вы захватываете их с помощью Raw Input.Наконец, это то, чему я научился на зарубежных форумах.
Я разработал альтернативный подход, который способен различать устройства, перехватывать ввод и также предотвращать этот ввод от , делая .Это библиотека C, которая внутренне взаимодействует с драйверами фильтров устройств.
У меня есть два основных примера устранения неоднозначности устройств на github:
Ключевое различие между этими двумя примерами состоит в том, что образец hardwareid показывает, как получить идентификатор, предоставленный оборудованием вашего устройства, включая идентификатор поставщика, идентификатор продукта и, возможно,немного серийной информации.Проблема в том, что обычно этой предоставленной информации недостаточно для устранения противоречий между двумя идентичными устройствами.Они оказываются от одного поставщика, имеют одинаковую модель, в сумме равны, но не одинаковы.Таким образом, для устранения неоднозначности требуется некоторый вид идентификатора соединения, который может измениться при переподключении, но помогает устранить неоднозначность во время выполнения, и именно это показывает пример идентификации.
У меня есть macbook, и я смогчтобы отличить мою волшебную мышь от сенсорной панели (в bootcamp) с моей библиотекой.
Больше документов на http://oblita.com/Interception.
ПРИМЕЧАНИЕ: в настоящее время библиотека имеет ограничение в 10 клавиатур и 10 мышей.