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++差不多。
pc蛋蛋华山群 官方体育机构 九钻体育正品 体育活动的海报 酷贝体育展开内容
Little Triangle游戏下载-little triangle steam分流官方pc版
好爸妈点读机人教版苹果版下载-好爸妈点读机人教版小学数学全集ios版6.4.9 IPhone版
海盗跳一跳游戏下载-海盗跳一跳(Voxel Jumper)游戏v1.1 安卓版
草莓公主跑酷下载免费安装-草莓公主跑酷免费版1.2.3.2 最新版
铁马西游app1.0.1 司机版
小附近下载-小附近app3.0.0.0官方安卓版
2017时尚现代整套婚纱影楼相册模版下载-时尚现代整套婚纱影楼相册模版psd 高清版
Pluvia天气app下载-Pluvia天气软件1.4.4 最新版
草图大师2019破解版安装下载-草图大师2019V 2019破解版
煤易通物流版下载-煤易通物流版app1.3.1 安卓版
Balls Race苹果版下载-Balls Race游戏ios版1.0 手机最新版
布卡云电脑手机版下载-布卡云电脑app4.3.35.2 安卓手机版
makeupkit游戏下载-makeupkit眼影盒子1.0.8.0 最新版
唐诗宋词查询下载-唐诗宋词查询大全2.1.0 免费版
上古卷轴5随从小妖凯瑟琳mod绿色版
7.7/653.7M
使命召唤僵尸猛攻,带你去打僵尸,僵尸病毒袭击了这个世界,你需要和其他玩家一起抵抗丧尸进攻的步伐,这款游戏支持联机,你可以在丧尸模式下体验刺激热血的防守战,射击僵...
7.5/1,897.3M
在实现哈尔滨市政务服务App全部功能的基础上,对标全国制定设计方案,开发e冰城政务App,有着丰富的功能,在实现哈尔滨市政务服务App全部功能的基础上,对标全国...
9.0/1,859.4M
蜀桑源浏览器app是一款模拟经营平台,用户在这里可以经营自己的庄园,将虚拟的庄园与现实的线上农场结合起来,通过虚拟种树获得游戏虚拟收益,欢迎下载!蜀桑源浏览器a...
9.0/1,932.9M
福盾是一款可以有效帮助大家提高手机隐私安全的软件,打开即用,软件除了可以帮助大家进行手机安全管理外,还有一些有趣的小程序可以玩,一些相关的新闻可以了解哦~软件介...
8.9/1,880.5M
超品读书下载app是一款小说免费阅读软件,该app中整理了海量的免费图书资源供各位用户阅读,各种类型应有尽有!在阅读过程中能够自由调节字节、亮度,还能够开启护眼...
9.2/764.1M
元气主题壁纸app是一款非常优质的手机线上壁纸软件,用户下载这款软件能够为自己的手机设置各种各样的特色壁纸,app上的分类非常的丰富,各种超清壁纸任你选择。元气...
7.8/239.9M
常态音乐app是一款网友自制的可以在线听歌的软件,使用的是开源的资源以及代码壳子,所以很多熟悉的功能界面,如果你不喜欢太复杂的音乐软件功能,以及不想付费购买音乐...
微微助手加强版Pro下载安装-微微助手分身版pro1.4 加强版
7.9/427.4M
2022新版文本相似查询和智能纠错助理,如果你是微商的话那么这样一款软件就是你必不可少的,这软件需要收费会员的,大家注意。帮助你一键复制管理自己的文案内容,还可...
8.1/956.7M
这款软件是一款购物软件,在上面你可以寻找到众多的商品,各种不同的商品价格也是不同的,可以直接的领取优惠卷进行购物,让购物更加方便!倍贝优享介绍倍贝优享专注于精选...
指尖探全球app下载-指尖探全球模拟器游戏1.0.4 最新版
9.5/850.7M
这是一个简单好玩的休闲小游戏,你可以用手机来操作小球不断地飞行,在全球范围内旅行,一个模拟器的真实玩法,简单有趣的挑战。游戏简介1、一个休闲小球游戏,你可以用手...
手心输入法下载安装-手心输入法2.7.0.1702 官方最新版
8.5/141.9M
想给自己的电脑上安装一款很不错的电脑输入法的朋友,小编就给你建议试试下面的这款手心输入法,个人感觉还是很不错的一款输入法哦!手心输入法是一款拼音输入法,实现了极...
9.9/1,841.3M
怒斩屠龙是一款高度还原端游的传奇角色扮演游戏,经典的战法道三大职业,丰富的boss爆装、主线任务搭配特色剧情副本等玩法,玩家将要体验热血传奇的高超快乐。怒斩屠龙...
9.2/1,758.3M
果真云电脑APP可突破硬件束缚,带用户轻松畅享云端的强大算力。当我们还在为办公时,老旧电脑运行办公软件卡顿,影响效率;娱乐时,想玩大型3A游戏,却因电脑配置低只...
时尚洋品店物语国服中文版下载-时尚洋品店物语雷霆版1.0.4 官方版
7.5/1,885.3M
经营你的时装乐园,掌控流行趋势,精准库存把控,时尚洋品店这款游戏里面的衣服有好多种类,感觉楼层不够用,好多衣服都没有地方挂。希望能够把所有设计的楼层都建筑上,这...
WinSnap绿色单文件版下载-WinSnap屏幕捕获软件单文件版5.3.2 简体中文版
8.6/1,685.4M
WinSnap是一款好用的国外屏幕捕捉软件,能实现快速截图,捕捉图像方式灵活,支持活动窗口、特定区域、整个屏幕等,当然输出图片也有不同格式,小编为你提供WinS...
世纪之石2(Rock of Ages 2官方版)1.1 最新安卓版
7.8/1,777.4M
RockofAges2这款游戏是一款非常好玩的休闲类模拟游戏,这款游戏有着众多的场景可以体验,游戏以3d的游戏效果在加上各种爽快的操作,相信有很多人都是喜欢玩的...
专业出国考试互动小助手-出国各类考试交流小助手(i墨水)2.0.5 打卡学习版
7.5/1,470.3M
出国各类考试交流小助手,可以收集各类学习资源和分享知识点。i墨水每天打卡记录,养成学习的好习惯。您都可以从每天海量的i墨水知识点分享信息流中截取到您所需要的点点...
8.5/1,300.4M
声场app,汇聚来自各地的音乐爱好者,大家可以使用这款软件来更好的听歌和分享,享受更贴心的音乐分享、交流体验,超多音乐作品尽在其中,发现更多精彩内容。声场app...
阿拉德战记2.22下载-阿拉德战记2.22 正式版【附攻略+隐藏密码】
8.1/1,331.8M
阿拉德战记v2.22地图很多的地方都是进行了一些改变的,不过想免费的下载体验最新的版本地图以及相关的隐藏英雄密码的话,都是可以来免费的试试的!阿拉德战记v2.2...
歌华有线营业厅app下载-歌华有线营业厅app01.00.20 安卓版
9.1/167.7M
歌华有线app,集广电5g、宽带和有线电视等服务为一体的掌上营业厅。可以在线缴纳有线电视费用,查询账单信息。操作简便,数据实时更新,提供更加个性化的服务,如历史...
8.9/199.8M
是一款实用的物业一站式软件,软件为用户提供物业费缴纳,智能家居的控制和周边资讯类功能,帮助业主有一个更加方便的物业生活!茂家app介绍茂家是世茂物业集团推出的一...
7.8/151.3M
酷到没朋友的交友平台,Go酷app主要是通过兴趣爱好来交友,你可以在这里遇到你感兴趣的内容,记录你的生活,动态,参加在线一活动等操作,体验无穷的创造力,与国内优...
轻阅app官方版下载-轻阅app下载(解锁全部书源)v30062 最新版
8.3/418.8M
追书必备阅读工具,含括全网上百个上千个书源,一个不行换一个,基本上就相当于一个万能的书源小说阅读器,所有的小说都是可以自行搜索的,你也可以自己在发现页面自己搜索...
8.3/932.4M
恋爱笔记iphone版是一款情侣必备的手机日记软件,可以记录下你和她的点点滴滴,有些说不出口的话也能通过恋爱笔记大胆的写出来。在恋爱笔记中,情侣不仅可以通过文字...
9.5/421.3M
御剑云霄是一款玄幻修仙手游,画风非常的高清,可以进行御剑飞行,多样的战斗,可以打造属于自己的专属装备,神兵天降,可以浪漫的仙侠,虚拟遥感可以控制角色的战斗。御剑...