Keyevent в Windows - PullRequest
       31

Keyevent в Windows

1 голос
/ 02 сентября 2011

возможно ли получить событие для нажатой клавиши в Windows (XP)? У меня есть поток, у него есть while (1) -loop, и я печатаю там некоторые данные. Это должно быть синхронизировано, поэтому я использую WaitForMultipleObjects (2, events, FALSE, INFINITE); events - это массив дескрипторов, который содержит 2 дескриптора. Одним из них является событие из другого потока, которое сигнализирует, что сервер получил новое сообщение, а другое должно сообщить мне, что пользователь нажал клавишу (1-7). Как я могу получить этот второй дескриптор / событие?

Ответы [ 3 ]

1 голос
/ 02 сентября 2011

Вы ищете MsgWaitForMultipleObjects.Это может также получать сообщения, такие как WM_KEYDOWN.Вам не нужно HANDLE для ключевых событий.

0 голосов
/ 02 сентября 2011

В вашей программе у вас должен быть поток, обрабатывающий события, поступающие в вашу программу, такие как клавиатура, мышь и т. Д. В этом потоке вы можете определить, происходит ли событие клавиатуры, нажимающее или отпускающее интересующую вас клавишу.Если это так, вы сигнализируете другой поток.

0 голосов
/ 02 сентября 2011

Вы должны реализовать цикл сообщений для прослушивания WM_KEYDOWN или WM_KEYUP. Тогда вам следует вызвать соответствующий метод.

...