![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кaк выpубить, а потом снова врубить мышь??? [D5, WinME]
Transnet. © (2002-06-14 12:35:00)сабж. Очень нaдо!!! HELP!! PLIZ!!!!!
~Rand~ (2002-06-16 09:10:00) [1]Удалено модератором
VID (2002-06-14 20:40:00) [2]TO Doc: Если тобою приведённый пример взят из UBPFD, то хочу тебя проинформить, что этот юнит претерпел обновление... вырезаны некоторые ненужные (с точки зрения задачи) участки.
Причём в данном примере, мышка двигается, но не работают её левый и правый клик.
Полная блокировка мышки и клавы - через BlockInput (тоже есть в UBPFD)
TO SONG: ну что ж... бывает :) зато работает как танк, уж поверь!
Кстати, это не мною написано, я это просто опубликовал.
Song (2002-06-14 14:02:00) [3]УЖАС!!!
Нагромождение всего и вся...
DoC (2002-06-14 13:45:00) [4]Не понял - просто чтоб не двигалась? или же полностью заблокировать?
Если чтоб не двигалась:
//WG:TRect;
WG:=Rect(0,0,0,0);
ClipCursor(@WG);
а назад:
WG:=Rect(0,0,Screen.Width,Screen.Height);
ClipCursor(@WG);
а если полностью - по аналогии с клавой:
// Dummy : integer=0;
// OldKbHook : HHook=0;
function KbHook( code: Integer; wparam: Word; lparam: LongInt ): LongInt; stdcall;
// Обработчик клавы
begin
if code<0 then Result:=CallNextHookEx( oldKbHook, code, wparam, lparam )
else Result:=1;
end;
// Включение клавы
procedure KeyBoardOn;
begin
if OldKbHook <> 0 then
begin
UnHookWindowshookEx( OldKbHook );
OldKbHook := 0;
end;
SystemParametersInfo( SPI_SETFASTTASKSWITCH, 0, Nil, 0);
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, Nil, 0);
end;
// Выключение клавы
procedure KeyBoardOff;
begin
SystemParametersInfo( SPI_SETFASTTASKSWITCH, 1, @Dummy, 0);
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @Dummy, 0);
OldKbHook := SetWindowsHookEx( WH_KEYBOARD, @KbHook, HInstance, 0 );
end;