![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Блокировка 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