向DLL传递参数问题

session7 2011-10-14 05:13:26
研究全局HOOK有段时间了,最近有个问题(分虽然少,但希望大家帮帮菜鸟)

我制作全局键盘HOOK中,需要在EXE界面上显示当前按下的键。 我的方法是通过DLL向EXE发送数据 SendMessage 方法。

EXE调用DLL参数时传递句柄 HWND_ 的值

BOOL __declspec(dllexport)__stdcall installhook(HWND HWND_)
{
hkb=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)Key,hins,0); //这里调用了DLL中的Key函数,也就是监测键盘的
return TRUE;
}

Key函数如下

LRESULT __declspec(dllexport)__stdcall CALLBACK Key(int nCode,WPARAM wParam,LPARAM lParam)
{
if(((DWORD)lParam&0x40000000) && (HC_ACTION==nCode))
{
//如果我要向EXE使用SendMessage发送数据的话应该要获取其句柄吗?
//那么句柄已经传到的DLL中,在这里怎么样获取传送到DLL的句柄呢?
}
LRESULT RetVal = CallNextHookEx( hkb, nCode, wParam, lParam );
return RetVal;
}
...全文
51 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
session7 2011-10-14
  • 打赏
  • 举报
回复
4楼正解
session7 2011-10-14
  • 打赏
  • 举报
回复
T,M,D, 这么简单竟然忘记了 真是脑子嗅到了
Enter空格 2011-10-14
  • 打赏
  • 举报
回复
申请个全局的HWND g_Hwnd;
BOOL __declspec(dllexport)__stdcall installhook(HWND HWND_)
{
g_Hwnd = HWND;
hkb=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)Key,hins,0); //这里调用了DLL中的Key函数,也就是监测键盘的
return TRUE;
}

session7 2011-10-14
  • 打赏
  • 举报
回复
顶顶 在线等呀。。。
session7 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mymixing 的回复:]

有窗口句柄了就用SendMessage
或者PostMessage 向窗口发消息就行
[/Quote]

仔细看问题
Enter空格 2011-10-14
  • 打赏
  • 举报
回复
有窗口句柄了就用SendMessage
或者PostMessage 向窗口发消息就行

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧