Вот кусок маленькой демки. В качестве 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
|