Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
6-1077889647
mr.Tim
2004-02-27 16:47
2004.04.25
чем потестить HTTP- сервер?


14-1081159792
Иксик
2004-04-05 14:09
2004.04.25
Смешные инструкции


1-1081506710
Batoon
2004-04-09 14:31
2004.04.25
Помогите найти или сделать самму LISTBOX...


3-1080712258
mixam
2004-03-31 09:50
2004.04.25
приведение типов


3-1080272370
nik7777
2004-03-26 06:39
2004.04.25
Отловить одинаковые данные в БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский