Windows程序都是基于消息机制的,每个程序中都会有各种各样的消息,
如果想通过消息来控制程序的运行,我们只用关心程序中的命令消息
(WM_COMMAND)就行了,其他关于程序界面等等的消息,可以不管。要查看程
序运行的消息,使用VisualStudio中自带的工具spy++。豫卡通官方版-豫卡通安卓版1.3.15 手机版
打开spy++,选择spy|Windows,然后就会显示出当前的所有窗口,一
些主窗口中的字窗口也会显示出来,比如说工具栏窗口,编辑窗口等等。在
其中找到目标窗口。
以下是我运行spy++时显示的部分spy++窗口,其中有FineReader窗口
001702A6-tooltips_class32
000C01FE-"M"MSCTFIMEUl
001C02A0-"DefaultIME"IME
002401DO-tooltips_class32
003B009A-"Microsoft Spy++-[Windows2]"Afx:100000:0:10011:0:2600515
00300244-"M"MSCTFIMEUl
002E032E-FineReaderTipWindowClass
004F02B4-tooltips_class32
00410254-"Untitledbatch-ABBYYFineReader7.0ProfessionalEdition"
FineReader7MainWindowClass
003E0370-"DDEServerWindow"OleDdeWndClass
005002DC-ComboLBox
000D02B6-ComboLBox
00270320-ComboLBox
00AB0366-ComboLBox
00A000A4-tooltips_class32
(注:以上是使用printscreen抓图,然后使用FineReader识别的结果)
选择FineReader窗口,点击右键,弹出菜单中选择“Messages”,即可开始
监听该窗口的消息。你要是实际操作一下就会发现,消息非常多,根本无法从中
找到自己想看的消息。为了选出我们想看的消息,我们需要对消息进行过滤。选择
Messages|Options,弹出菜单中选择MessagesTab页,可以看见很多消息过滤选项。
我想监听WM_COMMAND消息,所以我ClearAll之后,只选择General消息。
以上设置好之后,开始监听消息,然后到FineReader窗口中点击Read快捷按钮
(安该按钮之后,FineReader开始识别当前选择的图片),然后回到spy++,监听到
的消息仍然不少,但是可以找到我们要查看的消息。如果你只按了一个按钮或者一个
菜单,在监听到的消息中间,你应该可以找到两个WM_COMMAND消息,一个发送出去的
消息,一个返回的消息,相信信息见下文。
以下是我在spy++中监听到的消息,其中有一个WM_COMMAND消息
<00039>00410254R...................WM_NOTIFY
<00040>00410254S...................WM_COMMANDv/NotifyCode:0(sentfroma
menu]wlD:4O2O3
<00041>00410254S...................WM_GETTEXTcchTextMax:512
lpszText:0012E200
<00042>00410254R...................WM_GETTEXTcchCopied:72
lpszText:0012E200f'U'l
(注:以上是使用printscreen抓图,然后使用FineReader识别的结果)
双击这个WM_COMMAND消息,可以看见关于这个消息的详细信息,如下
WindowHandle001F00AA//FineReader窗口句柄
NestingLevel2
Message0111(Sent)//WM_COMMAND消息ID,这个消息是发送出的消息
WM_COMMAND
wParam00009D0B//WM_COMMAND消息的两个参数
lParam00000000
在spy++中监听到的另外一个WM_COMMAND消息
<00089>00410254S...................WM_GETTEXTcchTextMax:512
lpszText:0012E1E0
<00090>00410254R...................WM_GETTEXTcchCopied:71
lpszText:0012E1E0(V")
<00092>00410254S...................WM_NOTIFYidCtrl:177pnmh:0012F988
(注:以上是使用printscreen抓图,然后使用FineReader识别的结果)
双击这个WM_COMMAND消息,可以看见关于这个消息的详细信息,如下
WindowHandle001F00AA//FineReader窗口句柄
NestingLevel2
Message0111(Return)//WM_COMMAND消息ID,这个消息是的消息
WM_COMMAND
wParam00009D0B//WM_COMMAND消息的两个参数
lParam00000000
既然可以查看到程序中消息的ID及消息的参数,那么我们可以自己编写
程序,向被控制的程序发送对应的消息,从而控制程序的运行。
第一步,在自己的程序中打开目标程序,使用一下API,具体请查看MSDN。
HINSTANCEShellExecute(
HWNDhwnd,
LPCTSTRlpOperation,
LPCTSTRlpFile,
LPCTSTRlpParameters,
LPCTSTRlpDirectory,
INTnShowCmd
);
在我的程序中,目标程序为FineReader,打开程序的代码如下:
HINSTANCEhRet=0;
hRet=ShellExecute(m_hWnd,
NULL,
"D:\ProgramFiles\ABBYYFineReader7.0Professional
Edition\FineReader.exe",
NULL,
NULL,
SW_HIDE);
if((int)hRet<=32)
{
MessageBox("打开FineReader失败!");
}
第二步,找到目标窗口,获得目标窗口的句柄
CWnd*pWnd=NULL;
//可能程序启动较慢,需要尝试多次才能找到目标窗口
while(pWnd==NULL)
{
Sleep(1000);
pWnd=FindWindow(NULL,"Batch-ABBYYFineReader7.0Professional
Edition");
}
第三步,向目标窗口发送消息。
可以使FineReader开始运行时,自动打开最后一次运行的一个Batch,所以我们只用
发送消息,
让FineReader开始识别就可以了。通过spy++可以查看到FineReader识别的WM_COMMAND
信息如下
Message0111(Sent)
WM_COMMAND
wParam00009D0B
lParam00000000
按以下方式向FineReader发送这个消息,使用SendMessage,等待消息返回后,再进
行下一步操作
::SendMessage(pWnd->GetSafeHwnd(),0x0111,0x9D0B,0);
FineReader识别完成之后,可以选择把结果保存为文件,或者发送到剪贴板,我选
择的是让其
把识别结果发送到剪贴板。同样使用spy++监听消息及其参数,然后发送对应的消息,
如下:
Message0111(Sent)
WM_COMMAND
wParam00009DA1
lParam00000000
::SendMessage(pWnd->GetSafeHwnd(),0x0111,0x9DA1,0);
进行这些操作之后,FineReader识别之后,就可以直接从剪贴板得到识别结果了,
相关代码如下
if(!IsClipboardFormatAvailable(CF_TEXT))
return;
if(!OpenClipboard())
return;
HGLOBALhglb=GetClipboardData(CF_TEXT);
if(hglb!=NULL)
{
LPTSTRlptstr=(char*)GlobalLock(hglb);
if(lptstr!=NULL)
{
MessageBox(lptstr,"识别结果");
GlobalUnlock(hglb);
}
}
EmptyClipboard();
CloseClipboard();
第四步,操作完毕之后,关闭目标程序,同样通过发送消息完成。
最先我以为直接发送WM_QUIT消息就可以了,后来发现不行,用spy++监听后发现,
应该发送WM_CLOSE消息。
::SendMessage(pWnd->GetSafeHwnd(),WM_CLOSE,0,0);
至此,基本操作实现。其实我觉得,只要做的好,完全可以自己做一个界面来,取
代它的界面。
打开microsoftspy++,在工具栏选择Find工具,在弹出的windowsearch窗口中拖动Findertool的图标至目标窗口即可.
使用microsoftspy++工具可以检查系统中所有窗口的层次关系,查看其属性遍历窗口,捕捉并查看特定窗口的消息。查看任意windows界面的handle,caption,class信息.另外DELPHI和BCB里有一个WINSIGHT好像和SPY++差不多。
pc蛋蛋拿暗号 九游会三个运河 九游会217 九游会电玩友城 体育在线播放展开内容
家有课堂大屏下载-家有课堂TV版app2.1.0官方安卓版
多媒体提取器下载-MediaExtractorFree多媒体提取器1.1福利版
宝宝考考你app下载-宝宝考考你app(儿童启蒙教育学习)2.1.4 安卓最新版
英雄无敌7中英文语言切换工具下载-魔法门之英雄无敌7官方中英文切换工具1.0 绿色免费版
51带货助手下载安装-51带货助手app1.0.0 安卓版
APUS超级加速手机版(手机内存清理软件)1.1.1 官网最新版
货运证app下载-货运证5.5官方手机版
快压(简单快速的压缩解压工具)V2.0.0.0 简体中文官方安装版
乱世三国私服下载-乱世三国手游私服1.0.01安卓版
仙变3牧仙记手游-仙变3牧仙记1.12.1.26最新版
Hi同学app-Hi同学2.4.1 手机客户端【官网】
一键领沃阅读联通5元话费软件1.0 免费版
商丘便民网手机版下载-商丘便民网app1.3.7 安卓版
蓝果视频app官方下载-蓝果视频安卓版1.1 最新版
女王历险记4官方下载-女王历险记4手游1.0 最新版
豪杰视频通(Hero Video Convert)V2.7 完整绿色免费版
赛博恐龙手游下载-赛博恐龙游戏2.0 手机版
Creo2.0破解版免费下载-Creo Parametric 2.0中文破解版免费版
三国志战略版官方正版下载-三国志战略版v2071.1572 官方最新版
修仙之路3.73攻略-修仙之路3.73 正式版【附隐藏英雄密码】
像素原神官方正版下载-像素原神最新版下载1.03 安卓版
我的主题公园2游戏下载-我的主题公园22.0 最新手机版
帝临九天1.31无cd版下载-帝临九天1.31破解版【破解英雄+vip礼包+作弊脚本】
人教版小学一年级语文上册课件-汉语拼音ie üe er ppt课件【小学一年级语文】免费下载
目标管理实务ppt模板2020免费版
8.1/299.3M
智能语音助理是一款智能语音助手软件,软件支持天气播报、语音闹钟、人工智能对话等多种功能,如果您觉得无聊可以和软人工智能对话,你可以询问你想问的任何问题,它都会为...
SuperEsp辅助下载-SuperEsp和平精英辅助5.0.4 最新版
9.9/1,385.2M
SuperEsp是一款游戏工具,你可以自由的开启和关闭对应的工具,让游戏的体验更加有意思,简洁的画面呈现的每一项内容都是完整的,让你轻松找到自己的目标,可以根据...
9.9/854.0M
袋鼠电视助手是一款很好用的智能管理软件,这款软件主要功能是能够进行智能电视的安全与遥控功能,软件操作非常简单,让你的观剧生活更加美好。软件介绍袋鼠电视助手是一款...
9.6/345.0M
2020高人气国战手游!四大职业,16种玩法,刀刀暴击!《远征2》手游是冰川网络旗下战略级跨世代国战手游,它首次在MMO游戏中引入大陆漂移合纵、跨服国家结盟、国...
蓝星漫部落-蓝星漫占星沙龙(蓝星漫app)2.4.3 安卓免费版
8.2/133.9M
每天签到送积分,涉及到塔罗占星和解盘的功能,海量的占星资讯每日更新。蓝星漫个性定制的占星社区。蓝星漫占星沙龙(蓝星漫app)软件介绍根据用户属性年龄及地域特点,...
游犀社区APP下载官方版-游犀社区v1.24.0.4 最新版
9.9/683.2M
游犀社区APP是专为游戏玩家们打造的交流互动社区,它为广大游戏爱好者搭建起一座沟通与交流的桥梁,提供了丰富且独特的游戏互动体验。例如当你在《英雄联盟》的排位赛中...
8.3/1,855.2M
IN社交app是一款非常有趣的社交类手机软件,使用这个软件你可以查看到众多的人,可以与他们进行聊天,并且IN社交还可以查看很多有趣的小视频,智能美颜让游戏十分有...
最后幸存者爬塔游戏2022下载-最后幸存者游戏1.11.81 最新版
8.1/1,899.9M
最后幸存者是一款非常有趣的爬塔游戏,游戏趣味性十足,游戏中有无限关卡,每一关的玩法都不相同,玩家需要想方设法的逃生出去,赶快来下载试试你能过几关。最后幸存者游戏...
8.8/1,915.8M
猎魔之约是一款魔幻风格的PK决战类手游,创建新的职业,掌握新的技巧,与小伙伴们一起战斗,感受游戏的快乐!游戏特色1、不断刷新自己的排行榜荣誉,同时还有个性十足的...
8.4/1,087.5M
旋风网络管家app是一款非常优质的网络测试软件,app能够为用户带来非常实用的网络测速功能,还能够一键解决用户的手机网络信号差的问题,通过自身研发的算法,有效的...
7.5/213.9M
小鹅通鹅直播APP上线啦!支持屏幕共享和自动对焦!小鹅通上面的直播老师必备软件,支持多端,电脑端+手机端+小程序等平台,在线开播,一键设置,管理自己的直播间等等...
讯飞教育云app下载-讯飞教育云智慧校园1.0.3 安卓手机版
9.6/850.1M
科大讯飞官方打造的一款智慧校园在线学习平台,讯飞教育云智慧校园app,它有着强大的数据库,线上线下结合,在线教学,资源管理,全面覆盖,优质的资源和教育场景支持。...
U盘病毒检测工具(ScanVirus)1.1.2.0 中文免费版
8.1/1,117.5M
ScanVirus是一个工作于WinPE环境下的U盘病毒检测工具,也可以在正常系统下工作。由于WinPE本身是安全无毒的环境,故程序的均调用标准的Windows...
9.7/1,134.0M
勇者泡泡龙4是智冠出品的经典动作游戏系列“勇者泡泡龙”最新作品,这款游戏新增的骑乘系统以及全新的泡泡龙尤其吸引人。该游戏最有特色的地方是卡通风格加入宠物骑乘系统...
7.9/808.3M
双平台混服的一款修仙题材手游,而且这款游戏是支持挂机的,高清画质,3D视觉效果,动感打击手感,等你来挑战,这款游戏相对而言是最新的版本,背景是以山海经IP的,新...
8.3/467.6M
打印机共享软件主打局域网内的打印机共享功能,便捷的体验,自由设置各项功能!软件使用方式简单,通过简单设置之后可以共享局域网中的打印机啦!软件亮点1、一键设置共享...
8.5/953.6M
这是一款角色传奇游戏,在变态单职业里玩家将会在经典的传奇游戏中进行战斗,不断地杀敌,不断地爆装备,一刀999,让你体验无穷的乐趣,带上伙伴一起来吧!变态单职业特...
FashionVerse游戏安卓下载-时尚节FashionVerse1.0.1 最新版
9.9/236.8M
FashionVerse:Dress&Style:时尚改头换面真人版换装游戏!这款游戏和一般的换装不一样的是,这里全部采用的是真实模特,并非3D动画,给...
掌上和平精英苹果版下载-掌上和平精英ios版2.9.7.5 手机最新版
7.5/772.3M
和平精英自上架appstore以来,高居AppStore畅销榜首,官方为了玩家更好的体验游戏,特意打造了手游助手,掌上和平精英,玩家可以在这里认识同样喜欢这款游...
8.6/853.9M
Krosmaga手游是一款非常好玩的战旗类型的手机游戏,玩家可以组建自己的战队,和敌人战斗,超多职业可以体验!Krosmaga手游简介一款非常好玩的游戏,游戏拥...
Boss防守战1.1.3下载-Boss防守战1.1.3正式版附攻略
9.6/90.9M
Boss防守战1.1.3正式版终于更新了,作者修复达到要求却不能选择复仇天神的BUG,修正部分文本,修复龙导师之拳不能合成的BUG,让游戏更加平衡,需要的下载吧...
10.0/1,963.4M
一款末日题材的动作游戏,冲撞战车提供了各种不同的零件,玩家可以自由对战车进行组装,不算的打怪升级解锁更多。冲撞战车手游特点1.各种各样的配件收集,可以进行自由组...
9.5/888.8M
母婴用品网上商城app是一款专业的手机母婴用品购物商城,提供全球优质母婴用品,各种进口行货,热销品牌,让你体验移动快捷购物体验,欢迎来下载使用!母婴用品是指为孕...
9.0/844.9M
儿歌三百首app中汇聚了海量的儿童经典歌曲,所有歌曲都免费播放,还可以进行睡眠定时,是一款不错的哄睡软件;宝爸宝妈们快来下载吧!儿歌三百首介绍儿歌三百首是一款非...
手机闹钟软件下载-极品闹钟5.0.49 官方最新版【算术闹钟】
8.5/530.5M
早上起床是一件很困难的事情,那么手机闹钟闹不醒怎么办呢?有一种很有个性化的手机闹钟,它需要计算一道算术题目后,手机铃声才能关闭,极品闹钟就是这样一款算术闹钟软件...