Главная / FAQ по Builder'у / 174 Как заблокировать клавиратуру...

174 Как заблокировать клавиратуру (чтобы все приложения и сам Windows - не реагировал на клавиратуру) и как потом её разблокировать?


Вот кусок маленькой демки. В качестве Console использовался обычный Memo.

void __fastcall TMainForm::btnBlockInputClick(TObject *Sender)
{
   HINSTANCE hDll;
   DWORD __stdcall (*BlockInput)(bool Status);  //прототип будущей функции
   DWORD Result;

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

Sergey Kaluzhskiy 2:5055/182

Предыдущий вопрос   |  Список вопросов   |   Следующий вопрос

источник      На главную      by jenyok
Copyright © 2003 JTSOFT
Сайт управляется системой uCoz