Учись программированию на C++ Builder бесплатно!

Рассмотрим как можно на время заблокировать клавиатуру и мышь.

Пример.


Разместим на форме компонент Memo и кнопку Button со следующим кодом:

HINSTANCE hDll;
DWORD __stdcall(*BlockInput)(bool Status);
DWORD Result;
Memo1->Lines->Add("");
Memo1->Lines->Add("Загрузка функции BlockInput()...");
hDll = LoadLibrary("User32.dll");
Memo1->Lines->Add("hDll = " + IntToHex(int(hDll), 8));
BlockInput = (DWORD __stdcall (*)(bool Status))GetProcAddress(hDll, "BlockInput");
Memo1->Lines->Add("BlockInput = " + IntToHex(int(BlockInput), 8));
if(!BlockInput)
  {
  Memo1->Lines->Add("Ошибка!");
  FreeLibrary(hDll);
  return;
  }
Memo1->Lines->Add("Выполняем BlockInput(true)...");
Result = BlockInput(true);
Memo1->Lines->Add("Result = " + IntToStr(Result));
if(Result)
  {
  Memo1->Lines->Add("Теперь клавиатура и мышь доступны только, если нажать CTRL+ALT+DEL");
  Memo1->Lines->Add("Ждем 10 сек...");
  Sleep(1000);
  }
else Memo1->Lines->Add("Ошибка!");
Memo1->Lines->Add("Восстанавливаем все как было...");
BlockInput(false);
FreeLibrary(hDll);
Memo1->Lines->Add("Готово.");

Поиск по сайту