Fialochka |
Отправлено: 24.05.2004, 09:04 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 8
|
Подскажите пожалуйста, как можно блокировать клиентовский комп полностью (клавиатуры, мыши) по команде сервера.
Спасибо. |
|
Gedeon |
Отправлено: 24.05.2004, 09:30 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Ух злобная Fialochka, где-то я на это натыкался, пороюсь в мсдн, уточните надо отключить клаву и мышь или добиться эффекта к-рый происходит при нажатии Win + L?
|
|
gauldot |
Отправлено: 26.05.2004, 00:36 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 22
|
Клавиатуру вместе с мышью можно включить\отключить так:
CODE |
// Отключить...10сек...включить
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// BlockAll (true) — отключить.
// BlockAll (false) — включить.
HINSTANCE Hnd;
DWORD Result;
DWORD __stdcall (*BlockAll)(bool Status); // прототип ф-ии
Hnd = LoadLibrary("User32.dll");
BlockAll = (DWORD __stdcall (*)(bool Status))GetProcAddress(Hnd,"BlockInput");
if(!BlockAll)
{ FreeLibrary(Hnd);
return;
}
if(BlockAll(true)) Sleep(10000);
BlockAll(false);
FreeLibrary(Hnd);
}
|
Мышь ещё можно и так отключить (эмуляция так сказать ):
CODE |
void BlockMouse (bool Status)
{
if (Status)
{ TPoint P;
tagRECT LR;
GetCursorPos(&P);
LR.left = P.x;
LR.top = P.y;
LR.right = P.x+1;
LR.bottom = P.y+1;
ClipCursor(&LR);
} else ClipCursor(NULL);
}
/////////////////////////////////////////////////////
void __fastcall TForm1::Button1Click(TObject *Sender)
{
BlockMouse (true);
Sleep(10000);
BlockMouse (false);
}
|
А если WIN-L:
CODE |
void __fastcall TForm1::Button1Click(TObject *Sender)
{
keybd_event(VK_LWIN, 0, 0 ,0);
keybd_event('L', 0, 0 ,0);
keybd_event('L', 0, KEYEVENTF_KEYUP,0);
keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP,0);
}
| |
|
|