HHOOK trap=0;
int pks[256];
HINSTANCE hins;
LRESULT CALLBACK keyget(int Code, WPARAM wParam, LPARAM lParam)
{
if(!trap) return 1;
if(Code<0) return CallNextHookEx(trap,Code,wParam,lParam);
//Keydown
if ((((lParam)>>30)&1)==0){
//GetKeyNameText(lParam,k,sizeof(k));
//MessageBox(NULL,k,"down",MB_OK);
pks[wParam]=1;
}
//keyup
if ((((lParam)>>31)&1)==1) pks[wParam]=0;
return CallNextHookEx(trap,Code,wParam,lParam);
}
DLLCLBK void PlgInit (HINSTANCE hDLL)
{
int i;
for (i=0;i<255;i++) pks=0; //Кнопки в pks
ohins=apiGetInstance(); //HINSTANCE главного
trap=SetWindowsHookEx(WH_KEYBOARD,HOOKPROC(keyget),hins,0);
}
hook исчезает после alt+tab
Есть приложение. В него загружается библиотека dll (как plug-in).
Из этой библиотеки нужно перехватывать поступающий в основное приложение ввод с клавиатуры.
Сделал я это используя SetWindowsHookEx.
Работает нормально, но только до первого переключения задач alt-tabом, ctrl-escом или при возврате в отладчик. Причём, просто переключение задач (мышью) никакого влияния не оказывает.
Как лечить?
Помогите пожалуйста.
Код:
Так то все должно быть нормально. А что именно не работает после указанных комбинаций? Не перехватывает ничего?