Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Блокировка клавиатуры

4.8K
16 августа 2007 года
fakel15
54 / / 02.12.2005
Здравствуйте! Иногда приходится решать довольно интересные задачки… Например полностью блокировать клавиатуру на небольшой промежуток времени. Примерно представляю, в каком направлении двигаться, но может, кто-нибудь уже сталкивался с такими вещами? Буду очень благодарен за помощь! Заранее спасибо…
16K
16 августа 2007 года
Zbyszek
118 / / 08.08.2007
Попробуй SystemParametersInfo с SPI_SCREENSAVERRUNNING, должно подойти.
4.8K
17 августа 2007 года
fakel15
54 / / 02.12.2005
Спасибо... но к сожалению пока не очень помогло :(
нашел вот такую вещь:

HINSTANCE hDll;

DWORD (__stdcall *BlockInput)(BOOL Status);
DWORD Result;

hDll = LoadLibrary("User32.dll");

BlockInput = (DWORD (__stdcall *)(BOOL Status))GetProcAddress(hDll, "BlockInput");
if(!BlockInput)
{
FreeLibrary(hDll);
return;
}
Result = BlockInput(true);
if(Result)
{
Sleep(1500);
}
BlockInput(false);
FreeLibrary(hDll);

засыпает на полторы секунды :)
Может есть еще идеи по поводу блоков и перехватов?
4.8K
17 августа 2007 года
fakel15
54 / / 02.12.2005
нашел это в World C++
16K
17 августа 2007 года
Zbyszek
118 / / 08.08.2007
Можно правда еще попробовать устанавливать хуки:
Код:
hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, hInstance, 0);
...
  LRESULT KeyboardProc(...)
  {
     if (Key == VK_SOMEKEY)
    return 1;             // Trap key

    return CallNextHookEx(...); // Let the OS handle it
  }
...
UnhookWindowsHookEx(hKeyboardHook);
Но скорее всего вариант с BlockInput лучше.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог