VC键盘全局钩子,如何调用程序的全局函数
时间:2011-11-25
来源:互联网
键盘钩子函数如下
LRESULT CALLBACK KeyboardProc(int code,WPARAM wParam,LPARAM lParam)
{
if(VK_RETURN == wParam)
{
如果按下的事回车
如何调用程序的全局函数
return 1;
}
return 0;//不是回车都返回0
}
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;
}
还有一个函数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
}
而你想在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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28