键盘钩子安装失败, 返回值总是0
想给一个进程安装键盘钩子,但是返回的总是0,之前写过一个全局鼠标钩子的程序都没问题的,快崩溃了.求助啊LRESULTCALLBACKKeyBoardProc(intnCo...
想给一个进程安装键盘钩子, 但是返回的总是0, 之前写过一个全局鼠标钩子的程序都没问题的, 快崩溃了. 求助啊
LRESULT CALLBACK KeyBoardProc(int nCode,WPARAM wParam,LPARAM lParam);
extern "C" __declspec(dllexport) BOOL startHook(HWND hWnd)
{
BOOL bResult;
bResult=FALSE;
g_dwThreadID=GetWindowThreadProcessId(hWnd,&g_dwProcessID);
g_hOldHook=SetWindowsHookEx(WH_KEYBOARD_LL,KeyBoardProc,g_hInstance,g_dwThreadID);//这里返回0, 安装钩子失败
if (g_hOldHook)
{
return TRUE;
}
else
{
return FALSE;
}
} 展开
LRESULT CALLBACK KeyBoardProc(int nCode,WPARAM wParam,LPARAM lParam);
extern "C" __declspec(dllexport) BOOL startHook(HWND hWnd)
{
BOOL bResult;
bResult=FALSE;
g_dwThreadID=GetWindowThreadProcessId(hWnd,&g_dwProcessID);
g_hOldHook=SetWindowsHookEx(WH_KEYBOARD_LL,KeyBoardProc,g_hInstance,g_dwThreadID);//这里返回0, 安装钩子失败
if (g_hOldHook)
{
return TRUE;
}
else
{
return FALSE;
}
} 展开
展开全部
WH_KEYBOARD_LL 是全局钩子,并不需要dll。
你的参数有问题。 g_hInstance,g_dwThreadID
g_hInstance 为当前模块句柄, g_dwThreadID 要设置为NULL
你的参数有问题。 g_hInstance,g_dwThreadID
g_hInstance 为当前模块句柄, g_dwThreadID 要设置为NULL
追问
我试过勾取MH_MOUSE也不行, 后面参数设null还是一个效果, 莫名其妙的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是不是在VS里直接启动调试?
你在BIN里运行那个exe试试。。
我在VS里直接调试也是不行的
你在BIN里运行那个exe试试。。
我在VS里直接调试也是不行的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Windows Vista,Windows 7还是Windows XP,若是前两个,试一试右键,选择管理员权限启动程序。
追问
Win7, UAC关掉了的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询