+ -
当前位置:首页 → 问答吧 → VC键盘全局钩子,如何调用程序的全局函数

VC键盘全局钩子,如何调用程序的全局函数

时间:2011-11-25

来源:互联网

键盘钩子函数如下
LRESULT CALLBACK KeyboardProc(int code,WPARAM wParam,LPARAM lParam)
{
if(VK_RETURN == wParam)
{
如果按下的事回车
  如何调用程序的全局函数
return 1;
}
return 0;//不是回车都返回0
}

作者: vbboy100   发布时间: 2011-11-25

直接调用就行了。比如:
还有一个函数void a();
if(VK_RETURN == wParam)
{
如果按下的事回车
  a();
return 1;
}

作者: bEst_02   发布时间: 2011-11-25

钩子函数在DLL文件啊我试过 报错

作者: vbboy100   发布时间: 2011-11-25

如果你的函數是在exe裏,
而你想在dll裏調用exe程序裏的某個函數,那是不可能的。
因為是全局鉤子的,會被所有具有窗口過程函數的程序加載,這樣在dll裏想調用你程序的函數就是跨進程操作了,是不可能的。

你可以在dll裏發送消息給自己的程序,然後在程序收到消息後就調用程序裏的函數。

LRESULT CALLBACK KeyboardProc(int code,WPARAM wParam,LPARAM lParam)
{
if(VK_RETURN == wParam)
{
  ::SendMessage( 自己程序的窗口句柄,自定義消息,NULL,NULL) ;
return 1;
}
return 0;//不是回车都返回0
}

作者: jacky_qiu   发布时间: 2011-11-25