|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Ноя 30, 2003 14:21:11 · Поправил: Zaratustra Товарищи, помогите разобраться. У меня клавиатурный хук. В нем объявлено несколько глобальных переменных(в смысле в Длл в разделе .data). При нажатии клавиши я записываю в них некоторые значения, когда происходит смена окна, в котором эти клавиши нажимались. Но если я меняю окно на одно из тех, в которых кнопки уже перехватывалиь и происходила запись в эти переменные, то они(переменные) воостанавливают свои старые значения. Как такое может быть? Может описывать их нужно как-то по-другому, например в другом месте? Помогите плиз. Выкладываю полный исходный код Длл. Сам хук - обычный кейлоггер. Заранее благодарен! 1846089118__BIN.rar |
|
|
Дата: Дек 1, 2003 15:20:06 Который уже раз отвечаю на этот вопрос... Ты ставишь system-wide хук. Т.е. длл подгружается во все процессы и каждый её экземпляр будет иметь СВОЮ СОБСТВЕННУЮ секцию данных. Для того, чтобы код заработал так, как ты хочешь нужно поместить твои hHook, hWnd, hWnd1 в РАЗДЕЛЯЕМУЮ секцию данных так: shared SEGMENT hHook dd ? hWnd dd ? hWnd1 dd ? shared ENDS И при линковке сказать линкеру, что эта секция читаемая/записываемая/разделяемая так: /SECTION:shared,RWS |