Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Блокировка KeyBoard и Mouse с возможностью разблокировки [D1, D2, D3, D4, D5, D6, D7, Win95/98, WinME, WinXP]


Bonial ©   (2004-01-06 04:20:00) 

Мне нужно заблокировать клаву и "грызуна" на некоторое время. Нашел процедуру EnableHardwareInput(b:boolean)в файле user.exe. Но как ее оттуда достать? LoadLibraryне помогает: LoadLibrary('user.exe')=0.


Vit@ly   (2004-02-04 20:27:00) [1]

это шутка, а вот так серьезно:
function FuncAvail (VLibraryname, VFunctionname: string; var VPointer: pointer):
boolean;
var
 Vlib: tHandle;
begin
 Result := false;
 VPointer := NIL;
  if LoadLibrary(PChar(VLibraryname)) = 0 then
     exit;
  Vlib:= GetModuleHandle(PChar(VLibraryname));
  if Vlib <> 0 then
  begin
   VPointer := GetProcAddress(Vlib, PChar(VFunctionname));
   if VPointer <> NIL then
      Result := true;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 xBlockInput : function(Block: BOOL): BOOL; stdcall;
begin
if FuncAvail('USER32.DLL', 'BlockInput', @xBlockInput) then
begin
 xBlockInput(true);
 Sleep(15000);
 xBlockInput(false);
end;
end;


DeadMeat   (2004-02-04 19:52:00) [2]

> [8] Vit@ly ©   (04.02.04 15:13)
А эт чево такое...??


Vit@ly   (2004-02-04 15:13:00) [3]

procedure TForm1.Button1Click(Sender: TObject);
var
  xBlockInput : function(Block: BOOL): BOOL; stdcall;
begin
  xBlockInput(true);
  Sleep(15000);
  xBlockInput(false);
end;


Gero   (2004-02-04 15:01:00) [4]

>Мне нужно заблокировать клаву и "грызуна" на некоторое время

Зачем так наказывать бедного юзера?


DeadMeat   (2004-02-04 14:10:00) [5]

> [5] Slym ©   (04.02.04 13:17)
Так ведь и в Win9x так же можно сделать... Факт в том, что во всех виндах BlockInput работает... Правда в WinNT не проверял...


Slym   (2004-02-04 13:17:00) [6]

2 DeadMeat ALT CTRD DEl  и заработало...


DeadMeat   (2004-02-03 17:17:00) [7]


[2] asCrypter   (03.02.04 11:16)

> используй функцию BlockInput

но в XP работать не будет - я пробовал :)

А у меня в XP работает...


dr Tr0jan   (2004-02-03 13:13:00) [8]

Попробуй:
systemparametersinfo (97, word (true), @oldval, 0); // - для включения;
systemparametersinfo (97, word (false), @oldval, 0); // - для включения.

В Win9x сто пудово работает, в WinXP не пробовал, но вроде должно.


asCrypter   (2004-02-03 11:16:00) [9]


> используй функцию BlockInput


но в XP работать не будет - я пробовал :)


Kerk   (2004-01-06 14:17:00) [10]

user.exe - 16-ти разрядный, поэтому LoadLibrary тут не работает. В крайнем случае используй недокументированные LoadLibrary16, GetProcAddress16, QT_Thunk

или используй функцию BlockInput


Наверх

Титульная страница Поиск, карта сайта Написать письмо