Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |
Двойной вызов ф-ии KeyboardProc() 11.10.01 17:37 Число просмотров: 960
Автор: Cyril <sc> Статус: Member
|
> Я ставлю хук ф-ией SetWindowsHookEx на клаву. После > каждого нажатия клавиши фызывается ф-ия : > LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, > LPARAM lParam ) > { > char *p2="c:\\123.log"; > p=fopen(p2,"a"); > fputc(wParam,p); > fprintf(p," "); > fclose(p); > if (nCode<0) return > CallNextHookEx(NULL,nCode,wParam,lParam ); > else return true; > } > > Но самое интересное , что в файл пишется всё в 2-ом > экземпляре (ф-ия вып-ся 2 раза)..... > Помогите разобраться , где я не то 'намутил'.... > > PS если в конце ф-ии писать : ..... else return false;... > то когда хук установлен то всё ок, а если ......return > true... то клавиши типа NumLock > Caps Lock не работают вплоть до его отключения...
Видимо причина в этом
Клавишу нажал, клавишу отпустил, соответственно
вызывается хук два раза
|
|
<programming>
|
Двойной вызов ф-ии KeyboardProc() 11.10.01 17:27
Автор: Access Статус: Незарегистрированный пользователь
|
Я ставлю хук ф-ией SetWindowsHookEx на клаву. После каждого нажатия клавиши фызывается ф-ия :
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam )
{
char *p2="c:\\123.log";
p=fopen(p2,"a");
fputc(wParam,p);
fprintf(p," ");
fclose(p);
if (nCode<0) return CallNextHookEx(NULL,nCode,wParam,lParam );
else return true;
}
Но самое интересное , что в файл пишется всё в 2-ом экземпляре (ф-ия вып-ся 2 раза).....
Помогите разобраться , где я не то 'намутил'....
PS если в конце ф-ии писать : ..... else return false;... то когда хук установлен то всё ок, а если ......return true... то клавиши типа NumLock
Caps Lock не работают вплоть до его отключения...
|
 |
Двойной вызов ф-ии KeyboardProc() 11.10.01 17:37
Автор: Cyril <sc> Статус: Member
|
> Я ставлю хук ф-ией SetWindowsHookEx на клаву. После > каждого нажатия клавиши фызывается ф-ия : > LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, > LPARAM lParam ) > { > char *p2="c:\\123.log"; > p=fopen(p2,"a"); > fputc(wParam,p); > fprintf(p," "); > fclose(p); > if (nCode<0) return > CallNextHookEx(NULL,nCode,wParam,lParam ); > else return true; > } > > Но самое интересное , что в файл пишется всё в 2-ом > экземпляре (ф-ия вып-ся 2 раза)..... > Помогите разобраться , где я не то 'намутил'.... > > PS если в конце ф-ии писать : ..... else return false;... > то когда хук установлен то всё ок, а если ......return > true... то клавиши типа NumLock > Caps Lock не работают вплоть до его отключения...
Видимо причина в этом
Клавишу нажал, клавишу отпустил, соответственно
вызывается хук два раза
|
|
|