用Visual C++实现屏幕抓程序(5)
break;
case VK_CONTROL:
MaskBits|=CTRLBIT;
break;
case VK_SHIFT:
MaskBits|=SHIFTBIT;
break;
default: //judge the key and send message
break;
}
for(int index=0;index {
if(hCallWnd[index]==NULL)
continue;
if(IsWindow(hCallWnd[index])&&(HotKey[index]==wParam)&&(HotKeyMask[index]==MaskBits))
{
SendMessage(hCallWnd[index],WM_HOTKEY,wParam,WM_KEYDOWN);
bProcessed=TRUE;
}
}
}
if(!bProcessed){
for(int index=0;index if(hCallWnd[index]==NULL)
continue;
if(IsWindow(hCallWnd[index])&&(HotKey[index]==0)&&(HotKeyMask[index]==0))
SendMessage(hCallWnd[index],WM_HOTKEY,WM_HOTKEY,lParam);
}
}
}
return CallNextHookEx( hHook, nCode, wParam, lParam );
}
BOOL InitHotkey()
{
if(hHook!=NULL){
nHookCount++;
return TRUE;
}
else
hHook=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardProc,hins,0);
if(hHook!=NULL)
nHookCount++;
return (hHook!=NULL);
}
BOOL UnInit()
{
if(nHookCount>1){
nHookCount--;
return TRUE;
}
BOOL unhooked = UnhookWindowsHookEx(hHook);
if(unhooked==TRUE){
nHookCount=0;
hHook=NULL;
}
return unhooked;
}
BOOL __declspec(dllexport) __stdcall AddHotkey(HWND hWnd,UCHAR cKey,UCHAR cMask)
{
BOOL bAdded=FALSE;
for(int index=0;index if(hCallWnd[index]==0){
- 上一篇:VC++中实现以复杂线条为基础的图形绘图
- 下一篇:通过例程分析状态条用法