· Начало · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Проблема с переменными в клавиатурном хуке

Посл.отвђт Сообщен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