Windows程序都是基于消息机制的,每个程序中都会有各种各样的消息,
如果想通过消息来控制程序的运行,我们只用关心程序中的命令消息
(WM_COMMAND)就行了,其他关于程序界面等等的消息,可以不管。要查看程
序运行的消息,使用VisualStudio中自带的工具spy++。爱游戏官网
打开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++差不多。
现金体育官网 博一把白菜网 青虹娱乐app 金石娱乐app 七星形开奖直播展开内容
影豆网云播app2.1.5安卓版
东方之影官方版游戏下载-东方之影手游1.3.7 手机版
传奇黑屏补丁3.4 绿色免费版
乌鸦的悲鸣四号升级档3dm破解补丁1.0 免费最新版 【2015】
21财经情报pc客户端3.2.3 官方最新版
鼠标键盘记录回放器-飞扬鼠标键盘记录回放专家v1.0 绿色特别版
广发基金app下载-广发基金钱袋子app6.5.0 安卓官方版
安狗狗管家下载-安狗狗管家app7.3.000 安卓手机版
迷你世界之觉醒枪战免广告下载-迷你世界之觉醒枪战免广告版1.0.0 免费版
苹果助手app免费-苹果助手app安装器1.3 【不越狱免安装】绿色免费版
丁丁app下载-丁丁社交平台1.0.3 企业版
Triple Town手游下载-Triple Town游戏1.90.4 最新版
惠租车app-惠租车4.10.4 官方安卓版
杨家将演义礼包兑换码-杨家将演义礼包码华为版2.8.00福利版
齐心协力双人合作冒险中文版下载-齐心协力双人合作冒险1.0.1 汉化版
7.7/1,556.8M
校园知道是一款非常好用的软件,这款软件可以帮助老师管理学生的缺勤情况,学生也可以使用这款app打卡签到,并且这款软件还可以随时随地的观看校园内的新闻。软件介绍校...
电视游戏99合1 TV端下载-电视游戏99合1 TV版1.01 最新版
8.2/798.9M
电视游戏99合1TV版这个可以说是一个宝藏软件了,尤其是比较怀旧的朋友们,爱玩各种经典小游戏的,这是一款可以在电视端玩各种经典游戏的游戏应用盒子哦,大家直接进入...
8.5/223.5M
甜意App是一款创新社交交友平台,通过即时畅聊、趣味互动活动和多人组队相亲等特色功能,打破传统社交壁垒,为用户提供高效便捷且充满乐趣...
小猫与奇妙美术馆下载-逃脱游戏小猫与奇妙美术馆1.01 安卓版
7.7/1,293.9M
一只猫咪在美术馆中,逃脱游戏小猫与奇妙美术馆,采用的是漫画的形式,各种有趣的表情包,找出各种有价值的线索解开谜题,成功的逃出。游戏介绍住在某个地方的小白猫为了能...
魔考大师专业版app下载-魔考大师专业版(魔考大师官方版)2.8.2 最新专业版
9.5/1,566.5M
魔考大师专业版是一款很实用的中国建筑行业类考试专业刷题软件。这里包含了现在一建考试的所有真题答案。同时还拥有视频教学等,让你快速的提高成绩,在后期的一键考试中轻...
仙战传说1.1地图下载-仙战传说1.1正式版【附隐藏英雄密码+装备合成攻略】
7.5/1,254.6M
仙战传说1.1正式版强势更新到了1.1版本,需要下载体验的玩家现在就可以来免费的下载,本站为你提供的是最新的版本,以及相关的游戏攻略和隐藏英雄密码!仙战传说1....
9.5/962.8M
这是一款政府云采购平台,是一款政府办公平台,提供大量的采购功能服务,查看各种商品信息,支持在线询价等等功能,还有备忘录功能!软件简介政采云平台是一款能够实现政府...
9.6/1,678.4M
流放之路,在这里,流放出生命的精彩!这里有街头的流浪歌手,他们从流浪歌手到舞台歌王,他们的背后成长故事,无疑不触动着我们!流放之路怎么用进入软件,可以看到很多流...
9.7/135.2M
九霄御风行满v版是一款全新推出的热血仙侠战斗rpg手游。游戏有着丰富的玩法内容,唯美的修真场景,为玩家展现了一个真实的仙侠世界。御剑飞行,叱咤风云,随时御剑飞升...
7.8/1,747.2M
这实际上是官方为了方便用户使用电脑而将web版框在软件里面的一个产品,严格的来说不能算是电脑版,应该是网页微信电脑客户端,不过一样也能在电脑上面实现微信的所有功...
方言版的小明滚出去全集下载-汤姆猫真人版小明滚出去方言版完整版高清免费下载
8.8/1,147.3M
小明一直都是在我们的小学课本上面出现的一个人物了,那么现在就可以给你介绍汤姆猫真人版方言的语音为你带来最新的搞笑情节,有需要下载免费看的朋友现在就可以试试!小明...
8.1/1,258.7M
滚动迷城游戏是一块单机休闲小游戏,游戏为玩家带来了非常有趣的玩法,2d模式的滚动球球,比较有创意!滚动迷城游戏难度级别1、初来乍到2、小有成就3、大师级别4、专...
8.1/998.2M
滑板小咖是一款少儿学习滑板的软件,一个首次将滑板学习正式化、规范化、系统化的在线学习软件。面对不同的年龄层学员,配备不同的教学模式。打造一个滑板的学习圈子,让所...
7.8/233.5M
战棋天下是一款非常好玩的Q版画风战棋游戏,游戏以战国时期为题材背景。玩家在穿越到战国,进行一系列的冒险。组建自己的军团征战四方。丰富的游戏内容,炫酷的技能,给你...
天涯明月刀手游pc模拟器版-天涯明月刀手游电脑互通版1.0测试版
8.9/1,803.1M
天涯明月刀手游致力于在移动端的方寸之间重现天涯明月刀端游的高品质国风武侠游戏体验。2019年天刀手游开启了春雨、飞花两次测试,我们通过测试,也收获了天刀玩家的诸...
DemolitionCrew(爆破拆迁队)1.0 内购特别版【修改版】
8.2/805.2M
拆迁在我们的现实中是有很多的朋友都是知道的,想自己也来体验下的就可以下载这款爆破拆迁队修改版,绝对是你现在都是喜欢玩的一款修闲游戏了!爆破拆迁队修改版介绍《爆破...
9.4/1,441.5M
魔幻世界星光版数十名场景特效师打造极致电影级粒子场景,以全3D的方式来呈现出整个游戏世界,震撼的多人技能霸屏特效,霸气坐骑和人形珍宠的多维度培养,成长,升级等等...
我的垂钓世界中文版下载-我的垂钓世界游戏1.14.96 最新版
9.9/1,522.0M
我的垂钓世界是一款很真实的钓鱼游戏,可以选择不同的钓鱼场景,在捕捉稀有且非常有价值的大鱼,还可以欣赏到各种美丽的风景。我的垂钓世界游戏特点具有生动图形的真实位置...
9.9/948.6M
这是汝州本地的一个新闻资讯类型软件,不仅是新闻服务,云上汝州还提供各种生活服务,各种政务办理,社保服务办理,最新的动态消息等等!软件介绍云上汝州app是一款专门...
7.8/1,122.2M
开罗系列游戏又一全新作品--口袋学院物语3,建设文武双全的名校,精心的对学校进行布局,为学生创建一个舒适的学习环境,建设各种学园主题活动,丰富学生的校园生活,游...
剑刃风暴百年战争完美通关剧情存档免费下载-剑刃风暴百年战争完美通关剧情存档绿色免费版
9.4/1,936.1M
剑刃风暴百年战争完美通关剧情存档是一款剑刃风暴百年战争游戏的剧情存档,已经完美通关所有剧情,需要的网友可以来下载!剑刃风暴百年战争完美通关剧情存档介绍剑刃风暴:...
8.2/227.2M
塔防我最强游戏是由深圳传趣网络官方打造的一款趣味休闲三国策略塔防竞技玩法游戏,在塔防我最强游戏中,体验全新三国题材策略战斗闯关竞技玩法乐趣!给你一款不一样的三国...
8.0/1,978.6M
欧洲前线重制版是一款第一人称战争射击手游,在游戏之中玩家将会进入以第二次世界大战为背景的欧洲战场,你将装备各种军事装备开始战斗,游戏画风非常逼真,沉浸感很强,玩...
9.7/820.0M
大书法家(书法练习软件)是一款非常棒的手机练字软件,用户能够利用大书法家APP生成不同的风格的字体,并且可以根据自己的喜欢改变颜色,看到喜欢的字体就练习一下吧,...
KSWEB汉化版下载-ksweb吾爱汉化版3.986 中文专业版
7.9/357.7M
KSWEB是非常有名的手机开源服务器工具,官方版本是英文,而且需要购物才能使用,东坡这里找到风友破解的KSWEB汉化版,下载安装后,任意输入激活码就能激活成功,...