GetAsyncKeyState () - внешняя программа мешает ему

0

Я написал небольшую программу, которая использует GetAsyncKeyState(), и она отлично работает сама по себе.

Проблема в том, что когда я запускаю определенное внешнее приложение (не мое), мой GetAsyncKeyState() полностью прекращает прием ввода. Я хотел бы иметь возможность запускать оба приложения.

Есть ли что-то, что я могу сделать, чтобы заставить мою программу снова получать ввод с клавиатуры? Что может вызвать эту проблему?

Благодаря !

** Подробнее **

Я работаю с MFC и обрабатываю сообщение WM_TIMER, которое приводит к захвату ввода с клавиатуры. Я сделал ввод настраиваемым, а затем вызываю

if(GetAsyncKeyState(chVirtualKey) < 0) { //stuff happens }

** ОБНОВЛЕНИЕ ** Я сделал еще одно тестовое приложение (не MFC), установив крючок с моими ограниченными знаниями о них:

SetWindowsHookEx(WH_KEYBOARD_LL, &LowLevelKeyboardProc, hInstance, NULL);

Затем обработайте его:

LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    if (nCode == HC_ACTION)
    {
        KBDLLHOOKSTRUCT* p = (KBDLLHOOKSTRUCT*) lParam;

        if (p->vkCode == VK_SPACE) // spacebar key
        {
             SetCursorPos(400, 400); //just to test
        }
     }
    return CallNextHookEx(hHook, nCode, wParam, lParam);
}

Этот хук работает, но только пока другое приложение не работает, поэтому я все еще застрял...

  • 0
    Таким образом, вы теряете ввод с клавиатуры, даже когда ваше приложение имеет фокус?
  • 1
    Что вы имеете в виду, что он перестает получать входные данные? GetAsyncKeyState не "сам получает входные данные". Когда ты это называешь? Вы голосуете? Звонит в ответ на сообщение? Покажите некоторый исходный код ...
Показать ещё 9 комментариев
Теги:
winapi
mfc

1 ответ

0
Лучший ответ

После разговора с поддержкой другого приложения моя проблема была решена. Все, что мне нужно было сделать, - это запустить приложение в режиме администратора.

Спасибо за помощь! Я изучил новые трюки с крючками.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню