Сейчас на форуме: Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+3 невидимых)

 eXeL@B —› Программирование —› Отрубить клавиатуру
Посл.ответ Сообщение

Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 18 июня 2008 13:59
· Личное сообщение · #1

Хочу для себя сделать утиль которая будет на определенное время вырубать клавиатуру.
Слыхал про то что можно поставить хук на клаву и фильтровать ввод. Склепал тестовую прогу и только в блокноте попробовал понабирать експлорер и все проги кроме оперы сдохли и те которые были в автозагрузке опять загрузились. Мышь в это время должна работать и клаву чтобы можно было потом включить. Гугл ничего толкового не выдал. Буду рад любой инфе. Заранее спасибо.

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74





Ранг: 238.8 (наставник), 67thx
Активность: 0.20
Статус: Участник
CyberHunter

Создано: 18 июня 2008 15:07
· Личное сообщение · #2

rundll32 keyboard,disable Отключить клавиатуру

-----
Nulla aetas ad discendum sera





Ранг: 107.6 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 18 июня 2008 15:11
· Личное сообщение · #3

Stack пишет:
Хочу для себя сделать утиль которая будет на определенное время вырубать клавиатуру.

Лучше наоборот, ибо мышка - это зло))
По делу:
_http://www.exelab.ru/f/action=vthread&forum=6&topic=11262
_http://forum.vingrad.ru/showtopic=71208

-----
программистом не рождаются - им умирают




Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 18 июня 2008 15:36 · Поправил: Stack
· Личное сообщение · #4

Flint пишет:
rundll32 keyboard,disable Отключить клавиатуру

Я не троян делаю - мне и включить надо. Кстати в хп ругаеться что нет такой функции.

Gambit Сходил по второй твоей ссылке и растроился

Может как то через хук можно фильтровать чтобы система не грохнулась?

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74





Ранг: 279.1 (наставник)
Активность: 0.160
Статус: Участник
wizard

Создано: 18 июня 2008 17:00
· Личное сообщение · #5

Flint пишет:
rundll32 keyboard,disable


в XP не прокатит .

Stack перехватывай все нажатия клавиш и не выводи их дальше.

-----
Что один человек сделал , другой всегда сломать может...





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 18 июня 2008 17:00
· Личное сообщение · #6

Ну драйвер-фильтр на клаву повесить можешь, на васме есть пример кейлоггера, правда, с УСБ могут быть сложности...



Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 18 июня 2008 18:56
· Личное сообщение · #7

MACKLIA пишет:
Stack перехватывай все нажатия клавиш и не выводи их дальше.

Попробую WH_KEYBRD_LL а то WH_KEYBRD грохает систему. Или Может быть просто не делать CallNextHookEx?


Archer пишет:
Ну драйвер-фильтр на клаву повесить можешь, на васме есть пример кейлоггера, правда, с УСБ могут быть сложности...

До этого не дорос еще. Напишу еще косяво и будет бсодить.

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74





Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 18 июня 2008 20:17
· Личное сообщение · #8

DisableOEMLayer из user - отрубает сразу мышку, клавиатуру и дисплей =)

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 18 июня 2008 20:27
· Личное сообщение · #9

Crawler пишет:
DisableOEMLayer из user - отрубает сразу мышку, клавиатуру и дисплей =)


в хп это отменили

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74





Ранг: 107.6 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 19 июня 2008 00:10 · Поправил: Gambit
· Личное сообщение · #10

Вспомнил! Есть способ глобального перехвата.
Создавай окно(можно невидимое) и используй RegisterHotKey:
RegisterHotKey(Хендл окна,ID(любая цифра),ПАРНАЯ_КЛАВИША(например, MOD_CONTROL или NULL), код клавиши)
Следующая прога лочит клавишу V, разлочивание происходит при нажатии Ctrl+Enter.
PS Конечно, гемморой - каждую клаву обработать, но можно в цикл загнать...
PPS главное в приведенном ниже коде:
------------------------------
RegisterHotKey(hWnd,0x1,NULL,0x56);
RegisterHotKey(hWnd,0x2,MOD_CONTROL,0x0D);



case WM_HOTKEY:
switch(wParam){
case 0x1:
//Ничего не делаем при нажатии v
break;
case 0x2:
//Возвращаем все как было
UnregisterHotKey(hWnd,1);
return 0;
}

--------------------------



PPPS Компилится это все в Borland C++ командой bcc32 -tWE name.cpp
#include <windows.h>
HBITMAP hBitmap;
HINSTANCE hInstance;
LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,
WPARAM wParam,LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int iCmdShow)
{
const char szClassName[]="window";
WNDCLASSEX wc;
MSG msg;
HWND hWnd;
wc.cbSize=sizeof(wc);
wc.style=CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc=WndProc;
wc.cbClsExtra=NULL;
wc.cbWndExtra=NULL;
wc.hInstance=hInstance;
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName=NULL;
wc.lpszClassName=szClassName;
wc.hIcon=LoadIcon(hInstance,IDI_APPLICATION);
wc.hIconSm=LoadIcon(hInstance,IDI_APPLICATION);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);

if(!RegisterClassEx(&wc))
{
MessageBox(NULL,"Не могу зарегить класс","Ошибка",MB_OK | MB_ICONSTOP);
return -1;
}

hWnd=CreateWindowEx(NULL, szClassName,
"Фотка",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);

if(!hWnd)
{
MessageBox(NULL,"Не могу создать новое окно","Ошибка",MB_OK | MB_ICONSTOP);
return -1;
}

RegisterHotKey(hWnd,0x1,NULL,0x56);
RegisterHotKey(hWnd,0x2,MOD_CONTROL,0x0D);

// Цикл обработки сообщений
while (GetMessage(&msg,NULL,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);

}

return 0;
}


// Оконная процедура

LRESULT CALLBACK WndProc(HWND hWnd,
UINT msg,
WPARAM wParam,
LPARAM lParam)
{
switch(msg){

case WM_DESTROY:
DeleteObject(hBitmap);
PostQuitMessage(0);
return 0;
case WM_HOTKEY:
switch(wParam){
case 0x1:
//Ничего не делаем при нажатии v
break;
case 0x2:
//Возвращаем все как было
UnregisterHotKey(hWnd,1);
return 0;
}
default:
return DefWindowProc(hWnd,msg,wParam,lParam);
}

return 0;
}


-----
программистом не рождаются - им умирают





Ранг: 107.6 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 19 июня 2008 00:55
· Личное сообщение · #11

Коды клавиш:


6584_18.06.2008_CRACKLAB.rU.tgz - 1.htm

-----
программистом не рождаются - им умирают




Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 20 июня 2008 11:06
· Личное сообщение · #12

Gambit Спасибо большое

var b:byte
begin
for b:=0 to b:=255 do
begin
RegisterHotKey(Handle,b+1,0,b);
end;
end;


-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74



 eXeL@B —› Программирование —› Отрубить клавиатуру
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати