Windows程序都是基于消息机制的,每个程序中都会有各种各样的消息,
如果想通过消息来控制程序的运行,我们只用关心程序中的命令消息
(WM_COMMAND)就行了,其他关于程序界面等等的消息,可以不管。要查看程
序运行的消息,使用VisualStudio中自带的工具spy++。战沙城私服下载-战沙城满v版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++工具可以检查系统中所有窗口的层次关系,查看其属性遍历窗口,捕捉并查看特定窗口的消息。查看任意windows界面的handle,caption,class信息.另外DELPHI和BCB里有一个WINSIGHT好像和SPY++差不多。
打开microsoftspy++,在工具栏选择Find工具,在弹出的windowsearch窗口中拖动Findertool的图标至目标窗口即可.
乐鱼入口网址 分分彩跟买 天骄体育官网 体育平台资源 被体育生c展开内容
儿童学习大全最新下载-儿童学习大全5.4 安卓版
勇者捍卫者手游1.0.1安卓中文版
草根域名抢注工具8.0 绿色免费版
饥荒mod-饥荒猪舍地图导航MOD下载
有声书配音软件下载-有声书配音软件1.0.0官方正式版
GBK与UTF8批量转换工具1.0
小客微淘下载-小客微淘app1.0.9 安卓版
再见极域下载-再见极域(byebye极域)绿色版
天仙子3D手游下载-天仙子3D游戏1.0.41 安卓版
恶魔山羊游戏下载-恶魔山羊正式版1.5.3最新版
百万黄金屋答案下载-微信百万黄金屋答案大全doc完整版
当神奇光芒落下0.1折下载-当神奇光芒落下0.1折送无限连抽1.1.22 最新版
安全出行主题班会ppt-绿色交通安全出行ppt(共40页)免费版【班会课件】
美团优选团长端app下载-美团优选团长2.1.0官方版
拾贝课堂app下载-拾贝课堂app1.1.4 安卓手机版
8.5/575.5M
欅的奇迹是日本女团欅坂46的官方手游,玩家将在游戏中对女团成员进行管理。带领她们完成梦想,丰富的游戏剧情,养成的玩法,还有多样化的特色内容。感兴趣的朋友可以来试...
8.7/356.0M
四平妈妈网ios手机客户端是四平妈妈网官方为移动端用户开发的一款手机app,让四平妈妈们不用在电脑上,也能上四平妈妈网和众多的妈妈们交流经验。欢迎下载!四平妈妈...
8.8/1,571.0M
这款软件是一款非常好用的诗句软件,可以在上面看到众多的诗词,超多不同种类的诗句可以自由赏析,随时随地查看各种诗词,让大家学习更多!幸运极简诗app介绍幸运极简诗...
sweetly安卓下载-Sweetly安卓小组件1.0.1 安卓版
9.7/1,681.2M
Sweetly安卓小组件大部分可爱风格的功能小组件,超多壁纸资源,随意更换收集壁纸、应用图标,给你的安卓手机每天“换新衣”还能自定义更换图标,把你的爱豆做成一个...
万物everything破解补丁下载-万物单独免DVD补丁BAT版免费版
7.6/628.1M
万物everything是一款开放世界沙盒类模拟游戏,在游戏中玩家可以自己创造各种生物,为了方便玩家更好的游戏,小编为你带来万物everything破解补丁,喜...
好搭虚拟试衣app下载-好搭虚拟试衣苹果版1.5.1 ios版
8.3/1,316.0M
好搭虚拟试衣是一款为用户线上购物打造的虚拟试衣平台,让您在家就可以穿上自己喜欢的衣服。解决了新衣服买回来之后发现不适合而苦恼,软件能够根据用户的身材特征以及样貌...
电话弹幕app下载-电话弹幕app(语音转换文字小剪辑)1.0 苹果版
7.5/747.3M
电话弹幕app是一款非常有趣的手机软件,用户可以通过这款软件来制作文字动画,简单的制作方式,随时都可以创作你的作品!软件介绍适用于各种情景的作品!心灵鸡汤、电话...
8.8/1,064.3M
良才app为广大家具行业的人才提供一个招聘平台,这里汇聚木工行业的人才,企业可以在这里找到合适的工人!软件介绍良才是一款针对重庆地区家具行业,为企业提供人力资源...
旋转三角形3D手游下载-旋转三角形3D(Trinagon 3D)2.0351 安卓免费版
7.7/718.5M
非常锻炼玩家的空间力,思维创造力的一款休闲益智游戏,旋转三角形3D(Trinagon3D)中有超多的关卡,现在已更新到了410个,东坡这里附上的是破解免费版,所...
8.2/1,143.8M
求最短路径算法软件是一款功能非常强大的算法软件,使用这个软件你可以随时的了解到算法的相关内容,他可以帮助你在多个节点之间算出最短距离是多少!这样减少了不少时间!...
8.4/311.8M
这是一个商家专用的收钱系统软件,类似支付宝的用法,一个软件支持收款各种付款方式,包括支付宝,微信,银联卡等等都支持,在线语音播放!软件介绍一款特别适合商家使用的...
9.0/256.9M
功夫战士是一款很不错的冒险格斗游戏,这款游戏曾经在ios平台上获得好几次好评游戏,现在正式想安卓手机用户们推荐了!喜欢玩手机游戏的朋友就不妨进来看看吧!游戏介绍...
寂静岭2导演剪辑版汉化补丁下载-寂静岭2导演剪辑版汉化补丁1.1 绿色免费版
9.8/1,266.9M
寂静岭2导演剪辑版汉化补丁是由轩辕汉化组官方完整汉化制作的,对寂静岭2导演剪辑版游戏进行文本汉化,让你可以轻松的玩游戏。寂静岭2导演剪辑版汉化补丁怎么用使用方法...
韶州印象app下载安装-韶州印象送水服务平台1.0.1 正式版
9.2/279.6M
韶州印象官方版是专为韶关本土打造的线上送水服务软件,涵盖了多种矿泉饮用水服务,用户一键下单即可有专人为你送货上门,非常的省心又方便,不管是家用还是办公,都是极为...
9.9/388.4M
腾发二手车app是一个二手车服务平台,用户可以通过软件在这里找到合适的二手车,方便快捷,免去了中间商的服务环境,让交易更快达成!软件介绍腾发二手车在O2O领域专...
水精灵净水器管理软件-水精灵净水器售后服务管理软件3.8 官方免费版
9.0/479.1M
现在使用净水器的人越来越多,水精灵净水器售后服务管理软件就是一款以净水器售后服务为主切入点的企业管理软件,现已扩展适应于各行各业,它主要是以CRM客户关系管理、...
佩奇影视下载安卓2025-佩奇影视app官方最新版3.4.0 免费观看
8.1/1,071.2M
佩奇影视app是一款集丰富影视资源与强大播放功能于一体的综合性影视娱乐应用,致力于为用户提供优质的观影体验。这个软件提供最新最全的影视资源,支持安卓手机直接下载...
8.7/171.9M
加勒比海盗战争之潮手游是一款以加勒比海盗为题材的手机冒险类游戏,游戏中人物角色当然就是我们大家所熟知的加勒比海盗电影里面的几位主角了,最新的海上冒险剧情等着你。...
Autodesk Alias Design 2015官方下载64位-Autodesk Alias Design 2015中文原版最新完整版
9.2/1,934.1M
AutodeskAliasDesign2015可以直接的为你设计出各种各样的工业产品,也是一些模型需要的,这个都是可以根据自己的要求进行设计,2015年的版本集...
8.6/1,431.6M
联合部队狙击手是一款动作格斗类游戏,游戏中玩家将化身为一名狙击手,玩家可以收集不同的武器与敌方进行作战,你的使命就是完成一次又一次的冒险,与敌人展开战斗,做好准...
8.1/1,121.9M
剧情向横版弹幕,拯救妹妹!《无梦少女》是一款剧情向横版弹幕游戏。故事讲述主角【直子】,为了唤醒陷入昏迷的妹妹【慕灯】,驾驶【破梦机】进入梦境寻找被【无之力】束缚...
9.6/180.9M
呵呵主题签名是一款好用的oppo主题签名工具,拥有各种个性化主题,用户通过这款软件能打造出属于你自己的手机主题,还能直接对付费的主题进行签名,简单好用,需要的话...
9.9/888.9M
真实优质中老年用户K歌软件,《人人学唱歌》升级而来,集k歌和交友于一体,一款专为中老年群体打造的K歌平台,旨在为广大中老年朋友提供一个展示自我、结交朋友、享受音...
instamini软件下载-instamini软件1.44 最新版
8.0/1,512.0M
instaminiapp,一款类似于宝丽来的复古相机软件,这款软件每天只能拍10张照片,拥有多种复古相机界面,用户可以随意选择,如果想拍更多的照片,就只能解锁了...
Planet Bomber手游下载-Planet Bomber游戏4.5.2 最新版
7.6/1,092.9M
PlanetBomber游戏,厂商Voodoo最新推出的一款魔性游戏,在抖音上已经火了起来,玩家在游戏需要运用自己的智慧和策略完成任务,去解锁更多的关卡。Pla...