sendmsg返回值_[求助]怎么处理sendmessage的返回值
最后还是子类化搞定了
HHOOK g_hhook = NULL;
HINSTANCE m_hInst;
WNDPROC OldProc= NULL; //原窗口过程
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
BOOL APIENTRY DllMain( HANDLE hModule, //DLL入口
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
m_hInst=(HINSTANCE)hModule;
return TRUE;
};
extern "C" __declspec(dllexport) HHOOK _stdcall InstallHook(HWND hHwnd)
{
g_hhook = ::SetWindowsHookEx(WH_CALLWNDPROCRET, (HOOKPROC)KeyboardProc, m_hInst, ::GetWindowThreadProcessId(hHwnd,NULL));
if (g_hhook != NULL)
return g_hhook;
return 0;
}
extern "C" __declspec(dllexport) BOOL _stdcall UninstallHook(HHOOK hHook)
{
return ::UnhookWindowsHookEx(hHook);
}
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode == HC_ACTION)
{
//PCWPSTRUCT p=(PCWPSTRUCT)lParam;
CWPRETSTRUCT *p=(CWPRETSTRUCT*)lParam;
if(p->message == WM_USER+1)
{
HWND retNum;
char tt[10];
retNum=(HWND)p->wParam;
ltoa((DWORD)retNum,tt,10);
::MessageBox(0,tt,"提示",0);
OldProc=(WNDPROC)GetWindowLong(retNum,GWL_WNDPROC);
if (SetWindowLong(retNum,GWL_WNDPROC,(long)WindowProc)==0) //子类化
{
::MessageBox(0,"安装失败","提示",0);
}
//return 77586;
}
//::MessageBox(0,"hgggg","提示",0);
}
return ::CallNextHookEx(g_hhook, nCode, wParam ,lParam);
}
LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_DESTROY://接收到销毁窗口消息时取消子类化
if (OldProc != NULL)
{
SetWindowLong(hwnd,GWL_WNDPROC,(long)OldProc);
OldProc=NULL;
}
case WM_USER + 2:
::MessageBox(0,"收到WM_USER+2消息","提示",0);
return 7758;
}
return CallWindowProc(OldProc,hwnd,uMsg,wParam,lParam);
}
sendmsg返回值_[求助]怎么处理sendmessage的返回值相关推荐
- 文本过滤后返回空值_利用Fiddler来Mock接口返回值
前篇文章介绍了Mock测试的相关理论知识,今天就通过实战操作来演示一下如何通过Fiddler抓包工具来Mock接口返回值. 准备工作 准备一个服务端接口,可以自己用SpringBoot写一个简单的Re ...
- java中的左值右值_快速了解C/C++的左值和右值
最近在segmentfault上看到一个提问<c++隐式的类类型转换问题>:一时不知怎么回答,查阅相关资料后整理了本文,以供参考学习. 定义 早期的C给出的定义:左值是一个表达式,可能出现 ...
- 微信小程序如何从数组里取值_微信小程序获取各种数据值跟设置数据值
微信小程序获取各种数据值跟设置数据值. 修改设置data数组中的某个值://小程序接收后台数据若为数组时,下标最好为默认索引数组,从0开始排序 var articleId ='1'//对应数组中的索引 ...
- sendmsg返回值_[求助]Sendmessage函数返回值
各位老师好,请教一个问题,我有时候在编程的时候需要处理一些通过消息传遍过来的数据,这些数据每次里面有字符串,要是数字还好处理字符串就比较难处理, 我收集了5种消息传递字符串的方法,结果用着都不是让我很 ...
- java+jtextfield+取值_[求助]JTextfield 取值问题!
[求助]JTextfield 取值问题! 我用K取JTextfield中的值 可怎么就是得不到在JTextfield输入的值 K始终=0 (原来JTextfield的初值)请教各位 代码下面 大部分是 ...
- async js 返回值_获取JavaScript异步函数的返回值
今天研究一个小问题: 怎么拿到JavaScript异步函数的返回值? 1.错误尝试 当年未入行时,我的最初尝试: function getSomething() { var r = 0; setTim ...
- java获取JTextfield值_[求助]JTextfield 取值问题!
[求助]JTextfield 取值问题! 我用K取JTextfield中的值 可怎么就是得不到在JTextfield输入的值 K始终=0 (原来JTextfield的初值)请教各位 代码下面 大部分是 ...
- java中jdbc查询有返回值_使用JdbcTemplate查询方法的返回值 | 学步园
使用JdbcTemplate进行查询时,可以使用queryForXXX()等方法 1 jdbcTemplate.queryForInt() 和 jdbcTemplate.queryForLong( ...
- lisp pause 坐标值_求助,提取坐标的x值、y值不对,请问怎么修改
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 (defun c:hq() (setq pa (getpoint "输入左下点:")) ;输入左下桩坐标 (setq r1 (getr ...
最新文章
- 【转载】mysql常用函数汇总
- Elasticsearch和Hive整合,将hive数据同步到ES中
- 常用递归结构数据表,返会指点节点,跟其子节点的操作
- tar压缩/解压用法
- kafka streams_Kafka REST Proxy for MapR Streams入门
- mysql client 未开启_Django+mysqlclient未关闭数据库连接
- 谷歌何时停止Android更新,谷歌宣布Android Studio将停止为32位系统提供更新
- java 方法调用表达式_java lambda怎么表达式判断被调用接口名称和接口中方法
- 使用Jenkins搭建持续集成环境的方法(三)
- Atitit 信息化数据采集与分析解析 技术 处理技术 爬虫与http rest json xml h5解析 db数据库 mail协议与处理 数据压缩与解压 数据处理 文本处理
- 教学网站毕业设计源码【演示视频】
- VS2015正确卸载方法,亲测
- ps-黑白老照片快速上色
- 用大数据和机器学习揭示十二星座的真实面目(下) ‖ 处女座Get√
- 【故事】跟零计算机基础的房东女儿讲了一下午的中间人劫持京东事件后,她感激涕零,决定给我免除房租(上)...
- 软件测试需要学什么?测试小白入门必看!
- 一度智信电商是真的假的?
- 几个去黑头的土方法,试试看! - 生活至上,美容至尚!
- 【笔试】三七互娱笔试 web后端工程师
- Python入门总结-默单词程序
热门文章
- 猫影视接口相关及短网址
- Mysql学习总结(81)——为什么MySQL不推荐使用uuid或者雪花id作为主键?
- Mysql学习总结(72)——MySQL 开发者开发,设计规范再总结
- Linux学习总结(48)——Linux防火墙iptables与firewalld学习总结
- 微服务主见传递ID还是json_Feign实现微服务间文件传递
- 【区块链之菜鸟入门】区块链发展史:从拜占庭将军问题到智慧契约
- 将ubuntu的apache2修改成https链接
- 局域网内两台9303 的管理vlan mac地址冲突解决方法
- Android长时间后台运行Service
- System Center 2012 R2实例3—SCOM之SharePoint全方位监视11—服务监视