Re[7]: Перехват сообщений для окна по его хэндлу
От: BlackHeretic Израиль  
Дата: 24.08.06 11:21
Оценка: 4 (2)
Здравствуйте, nnoobb, Вы писали:

N>dll давно написана и все на ней работает, вопрос — как без dll.

N>Но вот какая проблема (собственно почему и хочется без нее) при установку hook происходит загрузка dll (или какой-то информации о dll) во все процессы системы. (я так думаю!) Хотя скорее всего я ошибаюсь, прошу меня поправить и втолковать как оно есть на самом деле или дать соответствующий линк.

Ошибаетесь В SetWindowsHookEx есть параметр — Thread ID — если он равен нулю, то действительно подгрузится везде. Но если его указать, то только в то приложение в котором этот thread бежит.
Получить ThreadId по HWND можно через функцию


DWORD GetWindowThreadProcessId(          HWND hWnd,
    LPDWORD lpdwProcessId
);
ICQ 156156278
Re[9]: Перехват сообщений для окна по его хэндлу
От: BlackHeretic Израиль  
Дата: 24.08.06 11:29
Оценка: :)
Здравствуйте, nnoobb, Вы писали:

N>А здесь есть способы повысить репутацию?


Да. Помогать другим
Если вы про оценку мне — то клацните на цифирь какую не жалко
ICQ 156156278
Перехват сообщений для окна по его хэндлу
От: nnoobb  
Дата: 24.08.06 10:53
Оценка:
Есть хэндл окна, нужно получать сообщения адресованные только ему.
Re: Перехват сообщений для окна по его хэндлу
От: BlackHeretic Израиль  
Дата: 24.08.06 10:55
Оценка:
SetWindowsHookEx
ICQ 156156278
Re[2]: Перехват сообщений для окна по его хэндлу
От: nnoobb  
Дата: 24.08.06 11:00
Оценка:
Здравствуйте, BlackHeretic, Вы писали:

BH>SetWindowsHookEx



Хотелось бы не использвоать dll
Re[3]: Перехват сообщений для окна по его хэндлу
От: BlackHeretic Израиль  
Дата: 24.08.06 11:02
Оценка:
Это наипростейший путь. Кстати, если окно в Вашем приложении — то и DLL не нужна.
ICQ 156156278
Re[4]: Перехват сообщений для окна по его хэндлу
От: nnoobb  
Дата: 24.08.06 11:03
Оценка:
Здравствуйте, BlackHeretic, Вы писали:

BH>Это наипростейший путь. Кстати, если окно в Вашем приложении — то и DLL не нужна.


Вероятно, если окно в моем приложении — то и hooks не нужны
Re[5]: Перехват сообщений для окна по его хэндлу
От: BlackHeretic Израиль  
Дата: 24.08.06 11:06
Оценка:
Здравствуйте, nnoobb, Вы писали:

N>Вероятно, если окно в моем приложении — то и hooks не нужны


Тогда пишите DLL. И что новички так этого пугаются. Хотя сам такой был
Самплов тут предостаточно. Даже статейка лежит.
ICQ 156156278
Re[6]: Перехват сообщений для окна по его хэндлу
От: nnoobb  
Дата: 24.08.06 11:13
Оценка:
Здравствуйте, BlackHeretic, Вы писали:

BH>Здравствуйте, nnoobb, Вы писали:


N>>Вероятно, если окно в моем приложении — то и hooks не нужны


BH>Тогда пишите DLL. И что новички так этого пугаются. Хотя сам такой был

BH>Самплов тут предостаточно. Даже статейка лежит.

dll давно написана и все на ней работает, вопрос — как без dll.
Но вот какая проблема (собственно почему и хочется без нее) при установку hook происходит загрузка dll (или какой-то информации о dll) во все процессы системы. (я так думаю!) Хотя скорее всего я ошибаюсь, прошу меня поправить и втолковать как оно есть на самом деле или дать соответствующий линк.
Re[8]: Перехват сообщений для окна по его хэндлу
От: nnoobb  
Дата: 24.08.06 11:24
Оценка:
Здравствуйте, BlackHeretic, Вы писали:

BH>Здравствуйте, nnoobb, Вы писали:


N>>dll давно написана и все на ней работает, вопрос — как без dll.

N>>Но вот какая проблема (собственно почему и хочется без нее) при установку hook происходит загрузка dll (или какой-то информации о dll) во все процессы системы. (я так думаю!) Хотя скорее всего я ошибаюсь, прошу меня поправить и втолковать как оно есть на самом деле или дать соответствующий линк.

BH>Ошибаетесь В SetWindowsHookEx есть параметр — Thread ID — если он равен нулю, то действительно подгрузится везде. Но если его указать, то только в то приложение в котором этот thread бежит.

BH>Получить ThreadId по HWND можно через функцию


BH>
BH>DWORD GetWindowThreadProcessId(          HWND hWnd,
BH>    LPDWORD lpdwProcessId
BH>);
BH>

Большое спасибо, то что нужно — не знал.
А здесь есть способы повысить репутацию?
Re[8]: Перехват сообщений для окна по его хэндлу
От: nnoobb  
Дата: 24.08.06 12:04
Оценка:
Здравствуйте, BlackHeretic, Вы писали:

BH>Здравствуйте, nnoobb, Вы писали:


N>>dll давно написана и все на ней работает, вопрос — как без dll.

N>>Но вот какая проблема (собственно почему и хочется без нее) при установку hook происходит загрузка dll (или какой-то информации о dll) во все процессы системы. (я так думаю!) Хотя скорее всего я ошибаюсь, прошу меня поправить и втолковать как оно есть на самом деле или дать соответствующий линк.

BH>Ошибаетесь В SetWindowsHookEx есть параметр — Thread ID — если он равен нулю, то действительно подгрузится везде. Но если его указать, то только в то приложение в котором этот thread бежит.

BH>Получить ThreadId по HWND можно через функцию


BH>
BH>DWORD GetWindowThreadProcessId(          HWND hWnd,
BH>    LPDWORD lpdwProcessId
BH>);
BH>

Однако эта функция возвращает id процесса, а в хууках требуется id треда. Как получить id треда
Re[9]: Перехват сообщений для окна по его хэндлу
От: BlackHeretic Израиль  
Дата: 24.08.06 12:07
Оценка:
Здравствуйте, nnoobb, Вы писали:

BH>>
BH>>DWORD GetWindowThreadProcessId(          HWND hWnd,
BH>>    LPDWORD lpdwProcessId
BH>>);
BH>>

N>Однако эта функция возвращает id процесса, а в хууках требуется id треда. Как получить id треда

Она возвращает ID треда, ID процесса возвращается через пойнтер LPDWORD lpdwProcessId. Согласен, имя функции звучит страшноватенько
А вообще, курите MSDN. Там все четко прописано.
ICQ 156156278
Re[10]: Перехват сообщений для окна по его хэндлу
От: nnoobb  
Дата: 25.08.06 03:16
Оценка:
Здравствуйте, BlackHeretic, Вы писали:

BH>Здравствуйте, nnoobb, Вы писали:


BH>>>
BH>>>DWORD GetWindowThreadProcessId(          HWND hWnd,
BH>>>    LPDWORD lpdwProcessId
BH>>>);
BH>>>

N>>Однако эта функция возвращает id процесса, а в хууках требуется id треда. Как получить id треда

BH>Она возвращает ID треда, ID процесса возвращается через пойнтер LPDWORD lpdwProcessId. Согласен, имя функции звучит страшноватенько

BH>А вообще, курите MSDN. Там все четко прописано

Спасибо, я чето думал что именно и передаю указатель на DWORD и мне вернется id треда — и не стал смотерть msdn.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.