Форум: "WinAPI";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизКак на время отключить только клавиатуру Найти похожие ветки
← →
Vasiliy © (2003-12-16 18:24) [0]Как на время отключить только клавиатуру
ShellExecute(Application.Handle,
Pchar("Open"),Pchar("C:\Windows\Rundll32.exe"),
Pchar("rundll32 keyboard,disable"),
Pchar("C:\Windows"),SW_SHOWNORMAL);
Работает отрубает на мертво а вот братно никак
rundll32 keyboard,enable хоть и есть но не работает
← →
Erazser (2003-12-17 01:31) [1]Тут только один вариант: используй хуки (ловушки, hook"s) в FAQ этого сайта есть нужная инфа!
← →
Bestden (2004-02-15 15:47) [2]А разве в ХР этой командой
ShellExecute(Application.Handle,
Pchar("Open"),Pchar("C:\Windows\Rundll32.exe"),
Pchar("rundll32 keyboard,disable"),
Pchar("C:\Windows"),SW_SHOWNORMAL);
мона вырубить клаву???
У меня не получается...!!! Может что-то не так со мной? :)
← →
Unax © (2004-02-15 21:49) [3]В XP нельзя, такое сканает только под 9x
← →
xion © (2004-02-16 03:53) [4]Воспользуйся ловушка(hook) событий от клавы,
перехвытывай и дальше не отпровляй
← →
able © (2004-02-16 14:01) [5]>xion © (16.02.04 03:53) [4]
Но в ХР всё равно ctrl-alt-del будет и работать и всё разблокируется...
← →
NightAngel © (2004-02-16 23:04) [6]Пример для Win95/98, WinME:
procedure CallRing0(Ring0Func:pointer);
const
ExceptionUsed = 5;
var
IDT : array [0..7] of byte;
lpOldGate : dword;
asm
pushad
sidt fword ptr IDT
mov ebx, dword ptr [IDT+2]
add ebx, 8*ExceptionUsed
mov dx, word ptr [ebx+6]
shl edx, 16d
mov dx, word ptr [ebx]
mov [lpOldGate], edx
mov eax, Ring0Func
mov word ptr [ebx], ax
shr eax, 16d
mov word ptr [ebx+6], ax
push ebx
int ExceptionUsed
pop ebx
mov ebx, dword ptr [IDT+2]
add ebx, 8*ExceptionUsed
mov edx, [lpOldGate]
mov word ptr [ebx], dx
shr edx, 16d
mov word ptr [ebx+6], dx
popad
end;
procedure DisableKeyboard;
asm
dw $20CD dd $0000D0008
dw $20CD dd $0000D0010
db $CF
end;
procedure EnableKeyboard;
asm
dw $20CD dd $0000D0008
dw $20CD dd $0000D000F
db $CF
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CallRing0(@DisableKeyboard);
Sleep(10000);
CallRing0(@EnableKeyboard);
end;
Для WinXP нужен драйвер режима ядра, или ч/з Ring0 (это уже из области вирусных технологий и приводить примеры я не буду).
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.045 c