Помогите, пожалуйста, кто знает. Навешиваю хук на сообщения клавиатуры (invoke SetWindowsHookEx,WH_KEYBOARD,ADDR HookProced,hInstance,NULL). В хук-процедуре HookProced кроме всего прочего содержатся две API-функции: MessageBeep и CreateFile. Так вот, MessageBeep работает при каждом нажатии клавиши, какое-бы окно не было активно, а CreateFile - только когда активно окно моей программы. Почему функции типа CreateFile и _lcreate не выполняются при переключении на чужие окна???? (кстати, если в SetWindowsHookEx вместо hInstance поставить NULL - она вообще не выполняется, хотя я видел массу примеров именно с таким описанием). Процедуры установки хука и HookProced находятся в dll-ке. Windows XP. Заранее благодарен.
Не обновляется файл, время создания не меняется (а когда активно окно моей программы - меняется). Я вот вчера прикинул, что, может быть, теряется значение параметра Filename этой функции в .data-сегменте dll-ки и слинковал ее с "section:.data,S", как это приведено у lczelion'а,- все равно не работает. WH_KEYBOARD_LL пока не пробовал.
Scandium Не обновляется файл ... Это не ответ. Происходит ли вызов функции, если да, то завершается ли он успешно (если нет, то что возвращает GetLastError), происходит ли запись в файл и т.д.
Если секция data? помечена .bss /S как разделяемая, видна везде, то DllEntry не должна ничего писать в data?, иначе данные не будут общие. Почему не разбирался, нашел тыком.