> Я ставлю хук ф-ией 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 не работают вплоть до его отключения...
Видимо причина в этом
Клавишу нажал, клавишу отпустил, соответственно
вызывается хук два раза
Я ставлю хук ф-ией 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 не работают вплоть до его отключения...
Видимо причина в этом
Клавишу нажал, клавишу отпустил, соответственно
вызывается хук два раза