![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Привет! Помогите пожалуйста, надо сделать хук на запуск процессов без dll и желательно кто умеет с помощью jcl. я вот такой пользую (он сволочь не все процессы ловит):
Код:
Последний раз редактировалось Admin, 05.03.2009 в 11:29. |
#2
|
|||
|
|||
![]() > надо сделать хук на запуск процессов без dll
Хуки могут располагаться ТОЛЬКО в dll |
#3
|
||||
|
||||
![]() Я конечно извиняюсь, может и я чего-то не знаю, но кто тебе сказал что ловушки (aslo known as hooks) можно ставить только в dll?
![]() Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() |
#4
|
||||
|
||||
![]() Цитата:
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#5
|
||||
|
||||
![]() До чего ж необразованный народ то пошёл
![]() Сначала хотел убедить тебя статьями с инета, но там мало хорошего.. Потом хотел найти пример реализации, видел я такой.. потом плюнул и написал сам ![]() Вот держи, ~10 строк кода, думаю тут всё понятно будет.. Ну и? Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() Последний раз редактировалось Ferra, 01.04.2009 в 14:27. |
#6
|
||||
|
||||
![]() Хотелось бы ещё добавить что это очень кривая реализация. Например там нежелательно пользоваться CallNextHookEx как это делал я. Иногда может выключать чужие приложения, иногда может этого и не делать. Усовершенствуй код - получишь то что спрашиваешь, я лишь показываю что такое реально.
![]() Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() |
#7
|
||||
|
||||
![]() Ferra, странно, но у меня твоя программа не работает. Она ловит нажатие клавиш только если ее окно активно, а если я нажимаю клавиши, скажем в блокноте, то прога ничего не ловит.
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#8
|
||||
|
||||
![]() Попробуй вставить в конце модуля
Код:
Но я не уверен. Не знаю как убедить, но у меня ловит. С проблемами и иногда, но ловит. Не стану спорить что много писанины про то что делать так нельзя(!) В MSDN именно так написано, но я специально для тебя постараюсь и найду приложение (видел я, видел ![]() Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() |
#9
|
||||
|
||||
![]() Видоизменил
Код:
Работает. Но очень нехорошо - приложение в котором нажата клавиша (кроме нашего) - уходит по английски. Выкидывает его. Я пока что не знаю причину столь странного поведения, надо будет почитать, поискать как это обойти. Ошибка возникает при CallNextHookEx - это очевидно. Как обойти - это уже отдельный вопрос, если он столь остро стоит, могу поискать. Засим откланюсь, думаю тема исчерпана. Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() |
#10
|
||||
|
||||
![]() Господа...!
Да не может не dll'ный хук ловить события системы. Не бывает так. Почитайте литературу сами или я, блин, вам примеры приведу как это работает. Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#11
|
||||
|
||||
![]() Да, я видел что написано в литературе. и в MSDN тоже.
Ну что поделать если данный пример ловит ![]() PS> для особо недоверчивых могу выложить видюшку, продемонстрирую что код тот же и что при нажатии клавиши в "чужом приложении" - данный пример выводит сообщение, а "чужое приложение" вылетает. Нет повести печальнее на свете, чем повесть о заклиневшем Resete. ![]() Последний раз редактировалось Ferra, 02.04.2009 в 18:49. |