Здравствуйте, Unsacrificed, Вы писали:
U>Здравствуйте, alexey_ma, Вы писали:
_>>Даже в этом случае не обязательно общаться с хуком посредством сообщений, организуйте другой IPC.
U>А вот тут можно по-подробней??? Загрузил dll, использовал одну из её функций для глобального хука. Если я использую хук WH_GETMESSAGE, то послав сообщение я, по сути, запуская как раз свою функцию в чужом контексте. Можно пример с указанием тип хука и как заставить этот хук инициирует IPC и будет его слушать???
Создайте в хуке свой собственный поток, который стоит и ждет например поименнованного эвента, в Вашем процессе делаете SetEvent этому самому эвенту, хуковый поток просыпаеться и вызывает нужную Вам функцию в чужом контексте и опять уходит в ожидание. Если нужны какие-то дополнительные параметры для выполнения функции в хуковом потоке, то можете записать их в поименованный мап файл перед тем как сделать SetEvent, соответственно хуковый поток проснувшись по эвенту сначала читает нужные ему данные из мап-файла а потом выполняет функцию в чужом контексте, и если нужно передать какие либо результаты выполнения обратно в Ваш процесс, то в тот же мап эти результаты пишет.
_>>Кроме того, на мой взгляд более правильно мониторить создание процессов/потоков/окон и внедряться только туда куда действительно нужно.
U>Внедрять нужно везде, где пользователь может что-то ввести с клавы — мне видиться мониторить в этом случае не самым удобным вариантом.
Чего Вы все-таки делаете (в двух словах) ?