glhInstance=GetModuleHandle(NULL);
G_IsStart=1;
h_Ghook=SetWindowsHookEx(WH_KEYBOARD,HookProc,glhInstance,0);
上面添加到按钮 里
只实现了 局部的 HOOK 我要是切换到 其他程序 就无法hook了HHOOK h_Ghook=NULL;
HINSTANCE glhInstance=NULL;
BOOL G_IsStart=0;
typedef struct tagKBDLLHOOKSTRUCT {
DWORD vkCode;
DWORD scanCode;
DWORD flags;
DWORD time;
DWORD dwExtraInfo;
} KBDLLHOOKSTRUCT, FAR *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT; LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam)
{
KBDLLHOOKSTRUCT* pStruct = (KBDLLHOOKSTRUCT*)lParam;
if ( pStruct->vkCode=VK_F2)
{
AfxMessageBox("dfa");
G_IsStart=0;
}
return CallNextHookEx(h_Ghook,nCode,wParam,lParam);
}
G_IsStart=1;
h_Ghook=SetWindowsHookEx(WH_KEYBOARD,HookProc,glhInstance,0);
上面添加到按钮 里
只实现了 局部的 HOOK 我要是切换到 其他程序 就无法hook了HHOOK h_Ghook=NULL;
HINSTANCE glhInstance=NULL;
BOOL G_IsStart=0;
typedef struct tagKBDLLHOOKSTRUCT {
DWORD vkCode;
DWORD scanCode;
DWORD flags;
DWORD time;
DWORD dwExtraInfo;
} KBDLLHOOKSTRUCT, FAR *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT; LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam)
{
KBDLLHOOKSTRUCT* pStruct = (KBDLLHOOKSTRUCT*)lParam;
if ( pStruct->vkCode=VK_F2)
{
AfxMessageBox("dfa");
G_IsStart=0;
}
return CallNextHookEx(h_Ghook,nCode,wParam,lParam);
}
这个要放在 DLL 共享段。HHOOK h_Ghook=NULL;