Windows程序都是基于消息机制的,每个程序中都会有各种各样的消息,
如果想通过消息来控制程序的运行,我们只用关心程序中的命令消息
(WM_COMMAND)就行了,其他关于程序界面等等的消息,可以不管。要查看程
序运行的消息,使用VisualStudio中自带的工具spy++。九州通演讲倒计时-九州通倒计时软件1.0 绿色版
打开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++差不多。
展开内容
Download Accelerator Plus 提高下载速度400%以上v8.1.3.0 官方版
真实停车场1.3 安卓最新版
虎牙VOCO客户端下载-虎牙VOCO客户端1.0.0.22 最新版
口型相机app下载安装-口型相机app1.1 安卓版
怪物猎人ol捏人数据库-怪物猎人ol捏脸模拟器1.0 免费最新版
狸窝dvd至ipod转换器4.2.0.2 免费版
幻灵仙境GM版1.0 手机版
师董会app4.1.9 安卓版
快吧游戏盒官方最新版下载-快吧游戏(最好的游戏盒子)10.2.1.8391 官方正式版
超级巡警U盘杀毒软件下载-超级巡警U盘病毒免疫器1.5 绿色版
头脑2048手游下载-头脑20481.0手机版
上学吧证券从业app下载-上学吧证券从业3.5.0 安卓版
中秋节手表促销psd免费模板素材
语文七年级下册说和做ppt-人教版语文七年级下册说和做ppt课件完整版
串口调试工具(Multi-Threaded)4.11 绿色免费版
AutoCAD Civil 3D 2014附安装教程-AutoCAD Civil 3D 2014 官方版最新版
Win10解压缩软件好压软件下载-Win10解压缩软件好压5.8 官方版
Autodesk Maya LT 2017破解版下载-Autodesk Maya LT 2017中文破解版【含注册机】
社交礼仪培训ppt-社交礼仪培训课件免费完整版【共104页】
天使投资商业计划书-天使投资商业计划书范本大全word格式最新免费版
桌面日历表2014下载-美图日历软件1.0.2 官方版
甜椒刷机助手手机版1.2.0 官方最新版
乔杉看你有几分姿色并且我心动了表情包-乔杉看你有几分姿色表情包抖音版
华夏群英传手游下载-华夏群英传安卓版1.0.0 安卓正版
咪咕快游下载-咪咕快游免费下载1.6.0.4最新免费版
录像大师破解版-EOP录像大师(EOP Video Recorder)1.0.12.2 中文免费版
9.0/985.0M
EOP录像大师(EOPVideoRecorder)是一款免费的电脑录像软件,使用录像大师破解版可以清晰的录制电脑上的画面和摄影头中的画面,输出成WMV视频文件。...
Pixiv Viewer官方APP下载-Pixiv Viewer动漫世界1.6 最新版
8.7/1,282.3M
PixivViewer绝对是一个异次元用户会喜欢的软件,它完完全全的为用户打造出了一个包含插画,漫画,小说以及直播等内容的动漫世界,而且它的UI布局多样,功能直...
7.5/1,074.6M
君君辅导hd版是一款iPad在线一对一课程学习辅导软件,该软件支持视频回放功能,哪里没听明白可以点击视频回看课程,是学习必备辅助软件。君君辅导hd版简介:“君君...
9.0/22.1M
吾爱图片分割器免费版是一款绿色免费的由网友曲终人散制作的的图片分割软件,软件的功能十分强大,使用者可以通过本软件将各种图片制作成一个巨大的照片墙之类使用,工具最...
8.4/923.2M
秒剪app是款极其简单的拍摄效果,超清晰,使您可以获得自己的编辑效果,这款软件为用户带来了非常丰富全面的视频编辑工具,里面包含了一键成片、文字成片、滤镜、智能曲...
cad看图测绘器app下载-CAD看图测绘器1.0.0 安卓版
8.3/398.9M
CAD看图测绘器是一款根据CAD的部分功能开发的实用性软件,辅助测绘工作者完成各种工作,如图形制作、测量和测绘等,使用起来效率大大提升,有需要的朋友们快来uzz...
9.1/631.2M
星空小球球游戏是一款充满创意和挑战的跑酷游戏。在游戏中,玩家将控制一个可爱的球球,在充满障碍和挑战的跑道上一路向前。这款游戏拥有独特的游戏特色,让玩家在体验游戏...
7.8/939.8M
rgss的中文名是游戏脚本系统全称是RubyGameScriptingSystem,rgss加密文件解包器就是针对这类文件进行解包的。RGSS全称是RubyGa...
弟子规图文有声app下载-弟子规图文有声国学4.3 安卓手机版
8.8/593.2M
宝宝启蒙阶段很好的教育软件,学习我们传统的礼仪文化,弟子规图文有声软件采用了真人老师配音朗读,学习道德规范和处世准则。弟子规图文有声国学介绍学国学,知礼仪、识大...
Aleta勒索病毒修复工具下载-病毒Aleta查杀软件2.0 最新版
9.3/298.3M
Aleta勒索病毒修复工具,这款病毒就像之前的WannaCry那样使用美国国家安全局(NSA)开发的“永恒之蓝”漏洞类似,有机场、银行及大型企业被报告感染病毒,...
9.4/1,508.4M
常用百科(生活百科助手),一款学习软件,这里有生活中常见的知识,便于自己了解常识,更好的生活!有需要的快来试试吧!常用百科(生活百科助手)功能介绍常用百科app...
超G办公app-Gworld中国(超G智能办公app)1.2.3 会议录音版
8.1/1,699.3M
超G社群-大型团队运营管理利器社群消息:支持发送视频、图片、文本、语音、红包消息;视频会议:一键发起视频会议,让团队内部沟通变得简单便捷;社群公告:功能强大的公...
rhino6.0破解版下载-犀牛Rhino6.0中文版全网首发开发版 【wip授权码】
8.3/778.4M
犀牛Rhino6.0中文版是现在刚研发出来的基于NURBS的三维建模软件。里面新增Grasshopper参数化插件、连续性控制调节自动连续实时预览功能、面或体增...
真实利率计算器app下载-真实利率计算器最新版1.3.7 官方版
9.1/891.9M
真实利率计算器是一款能够提供等额本金房贷计算实用软件,全面设置对应的相月供实际真实年化利率计算以及对比名医年化利率。在传统计算器的基础上增加计算结果小数点的设置...
角斗士m2.63地图下载-角斗士M2.63 破解版【附攻略】
8.3/1,007.8M
角斗士M2.63破解版是一款魔兽对抗地图,地图同时支持1-10人在线游戏,修复了S间无效的bug和修复地图传送地区卡怪的BUG,更多下载地图体验哦!地图信息:地...
贝贝时刻表查询列车下载-贝贝时刻表app1.0.0 手机免费版
7.9/184.0M
这是一款列车时刻查询软件,贝贝时刻表app帮助大家在线查询全国各地列车,所有的时间信息一目了然,让大家出行合理的去安排好时间。贝贝时刻表app功能1、车站查询-...
企客宝客户管理软件下载-企客宝客户管理系统1.0.0.9 官方最新版
9.1/1,467.4M
博购企客宝客户管理系统是一款便捷实用的客户管理软件,是新一代的客户管理系统,以联系人为核心,本软件特别适合中小企业和个人使用,支持一键傻瓜安装,操作简单方便。功...
家居设计改造手游下载-Home Design(家居设计改造)1.2.3g 安卓最新版
8.6/1,284.0M
家居设计改造是一款有趣的休闲游戏,将家居装修和三消玩法相结合,玩家需要通过消除游戏获得金币去购买更多的家居来装饰房子,效果非常的逼真,是3d的效果,更像是给自己...
8.4/360.4M
街霸拳王经典格斗街机类的游戏,全明星的战斗阵容体系,掌握不同的英雄技能,组建强大的队伍打出世界冠军的荣誉,收获无穷的力量。街霸拳王手游介绍精彩的拳王争霸又再次迎...
快手创作者官方平台下载-快手创作者版app10.6.50.101 手机版
9.7/1,819.2M
快手短视频的视频创作者必备的手机APP,算是一款办公软件了,如果你是在快手上发布短视频,并且是签约的创作者的话,那么这个软件将会帮助你更好的管理自己的作品以及数...
8.0/427.0M
土豆日记app是一款非常好用的在线记日记软件,用户可以在这里进行各种大小生活事情的记录,支持语音以及图片的并排记录,让你的文字记录生活充满精彩!软件介绍土豆日记...
8.1/707.7M
追词帮手是一款绿色好用的网络SEO辅助工具,同时也是全自动的百度关键词查排名工具,包含域名管理,域名关键词管理,查词时间管理,报表输出等不同功能。追词帮手功能特...
emoji表情生成-照片转emoji表情(emoji-mosaic)1.0 绿色免费版【马赛克图片制作】
8.8/78.9M
苹果新的输入加入emoji(颜文字)后,这种表情符号就开始席卷全球了,我们经常会看到一些用emoji拼出的图画,如果用手去拼,相信是作死的节奏,今天东坡小编带来...
世界启元手游下载-世界启元游戏官方版1.68.11557 最新版
9.1/872.4M
《文明》正版IP合作、跨时代SLG战争建造手游《世界启元》手游正式上线!玩家自己选择在哪一块大陆上进行发展,不同的大陆发展的文化背景不一样,建立属于自己的王国,...
8.5/1,469.9M
MacromediaJRun这款软件是一款非常好用的java服务器软件,他是专门为开发者所打造的,现在为大家带来MacromediaJRun企业版,可以让你直接...