Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Как на время отключить только клавиатуру   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
1-1081459488
LORDMAXX
2004-04-09 01:24
2004.04.25
Как за изменить файл на низком уровне


1-1081502794
Layner
2004-04-09 13:26
2004.04.25
Как раскрасить продольные строки в DBGrid разным цветом (нюанс)


3-1080283711
Drozdov A
2004-03-26 09:48
2004.04.25
Tstrings


9-1067193863
dn
2003-10-26 21:44
2004.04.25
Движки


3-1080285238
Mamed
2004-03-26 10:13
2004.04.25
AdoConnection