Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2010, 13:55   #1
Son
Пользователь
 
Аватар для Son
 
Регистрация: 24.11.2008
Сообщений: 76
По умолчанию Заблокировать клавиатуру

Доброго времени суток. Такой вопрос. Написа ловушку для блокировки клавиатуры по ресурсам интернета. Она блокирует только нажатие символьных клавиш. Как сделать блокировку остальных?
Вот код:
Цитата:
function KeyboardProc(code: integer; wParam: word; lParam: longint) : longint; stdcall;
var AppWnd:HWND;
Begin
if code < 0 then
Result:= CallNextHookEx(CurHook, Code, wParam, lParam)
else
begin
//if wParam = $20 then
// UnhookWindowsHookEx(CurHook)
//else
result:=1;
end;
end;
В закоментированной строке я потом надеюсь отслеживать комбинацию клавиш, по которой потом ловушку буду скидывать.
Лучше сдохнуть, чем жить с иглой в яйце (Кащей Бессмертный)
Son вне форума Ответить с цитированием
Старый 19.02.2010, 20:17   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

читай! http://pblog.ru/?p=293
специально для тебя
rpy3uH вне форума Ответить с цитированием
Старый 20.02.2010, 11:52   #3
CyberGenus
Пользователь
 
Регистрация: 23.01.2010
Сообщений: 36
По умолчанию

Еще можно попробовать через вызов библиотеки user32.dll:
Код:
procedure BlockInput(ABlockInput: boolean); stdcall; external 'USER32.DLL';

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.ShowMainForm:=false;
BlockInput(True);
end;
CyberGenus вне форума Ответить с цитированием
Старый 10.03.2010, 09:32   #4
Son
Пользователь
 
Аватар для Son
 
Регистрация: 24.11.2008
Сообщений: 76
По умолчанию

Спасибо за ответы, но оба варианта не удовлетворяют. В первом случае не удается блокировать нажатие клавиш Windows или сочетаний клавиш, во втором есть только один способ разблокировки Cntr+Alt+Del и других сочетаний не отлавливается.
Лучше сдохнуть, чем жить с иглой в яйце (Кащей Бессмертный)
Son вне форума Ответить с цитированием
Старый 12.03.2010, 02:42   #5
|{ot
Форумчанин
 
Аватар для |{ot
 
Регистрация: 09.03.2008
Сообщений: 127
Сообщение

Пробуй так:

DLL:
Код:
MouseHookStopSystem PROC nCode:DWORD,wParam:DWORD,lParam:DWORD
	mov eax,lParam
	assume eax:ptr MOUSEHOOKSTRUCT

	.if [eax].pt.x==0 && [eax].pt.y==0
		invoke FindWindow,;ищю свое окно
		invoke SendMessage,eax,WM_COMMAND,Start_WM,0
	.endif

 ret
MouseHookStopSystem ENDP

KeyHookStopSystem Proc nCode:DWORD,wParam:DWORD,lParam:DWORD

 ret
KeyHookStopSystem endp
Приложение:
Код:
;установка
invoke SetWindowsHookEx,WH_KEYBOARD,addr KeyHookStopSystem ,hDll,0
invoke SetWindowsHookEx,WH_MOUSE,addr MouseHookStopSystem ,hDll,0

;снятие(у меня по обработке сообщения WM_COMMAND):
	.elseif eax==Start_WM
		invoke UnhookWindowsHookEx,hStopHookMouse
		invoke UnhookWindowsHookEx,hStopHookKey
Ctrl+Alt+Del, Window, Win+L, Alt+Tab не блокирует, но сделать все равно ничего нельзя. Ну откроется диспетчер задач или окно пуск и че? Ни снять задачу ни что иное не получится..))
Диспетчер задач можно скрыть в этом случае тривиальным способом (запустить с параметром SW_HIDE)
А в функциях - фильтрах можно поставить свои условия снятия хуков...
|{ot вне форума Ответить с цитированием
Старый 12.03.2010, 04:27   #6
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Cкачай блокиратор.exe
Ну, а по теме рули в user32!
uberchel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заблокировать клавиатуру? BaRSyk174 Общие вопросы Delphi 6 26.02.2011 00:34
Как заблокировать клавиатуру? dradysman Общие вопросы Delphi 3 30.11.2009 18:34
залил чаем клавиатуру crazy horse Компьютерное железо 26 11.05.2009 15:54
Хук на клавиатуру xshStasX Помощь студентам 1 09.08.2008 16:56
Хук (hook) на клавиатуру eoln Win Api 17 03.05.2008 18:35