Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > вопрос по SetWindowHookEx() |
Автор: yngwie19 13.4.2009, 16:56 | ||
Всем привет. Хочу поставить hook на клавиатуру, хочу заблокировать нажатие всех клавиш, делаю так:
все равно клавиши не блокируются. Что Я делаю не так? |
Автор: GremlinProg 13.4.2009, 17:53 |
хук ставишь после отработки программы |
Автор: yngwie19 13.4.2009, 18:05 |
GremlinProg, Я его ставлю в функции WM_CREATE, нужно до GetMessage() ? |
Автор: yngwie19 13.4.2009, 19:45 | ||
GremlinProg, у меня в коде он запускается в WM_CREATE здесь Я написал маленький пример, чтобы проще было объяснить. Я его поставил перед DispatchMessage(), все равно клавиши не блокируются.
Подскажи что Я делаю не так? что мне сделать чтобы нажатие клавиш игнорилось? |
Автор: GremlinProg 13.4.2009, 20:11 |
а какой смысл приводить вдвойне ошибочный пример на свой нерабочий код? приводи актуальный код мне, к примеру, такие и перехват и главный цикл окна - весьма сомнительны без TranslateMessage - у тебя и так WM_CHAR приходить не будет поставь _RPT0("хук!!!\r\n") в процедуре перехвата ну и позажимай кнопки backspace, enter, ctrl и т.п. смотри в окно Output если в нем нет "хук!!!", значит разбирай примеры из MSDN http://www.google.com/search?client=opera&rls=ru&q=Using+Hooks&sourceid=opera&ie=utf-8&oe=utf-8 и в поиск по форуму |
Автор: yngwie19 13.4.2009, 23:01 |
Я вот что подумал, а нельзя ли как-нибудь следить за буфером и как только что-то туда попадает сразу же очищать. Тогда и вставлять нечего. Подкиньке пожалуйста примерчик на эту темку |
Автор: yngwie19 13.4.2009, 23:18 | ||
вот вроде нашел:
вроде ничего не копируется. 1) Скажите эти функции нужно один раз где-нибудь написать а они постоянно будут следить за буфером и если тат что-то появится, то оно сразу уничтожится? Или надо самому следить скажем через WM_TIMER через определенное время их вызывать и проверять? 2) Скажите этих функций вроде достаточно для защиты от копирования текста, даже PrintScreen не берет, можно хуки не вешать? Или еще как-нибудь можно скопировать текст (в моем случае из RichEdit) ? |