打开microsoftspy++,在工具栏选择Find工具,在弹出的windowsearch窗口中拖动Findertool的图标至目标窗口即可.斗地主赚钱正版下载
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++工具可以检查系统中所有窗口的层次关系,查看其属性遍历窗口,捕捉并查看特定窗口的消息。查看任意windows界面的handle,caption,class信息.另外DELPHI和BCB里有一个WINSIGHT好像和SPY++差不多。
展开内容
8.2/1,380.5M
有喜有鱼APP是一款线上兼职任务软件。用户可以在软件中接取到各种各样的任务,完成任务就会有奖励,任务随时都会更新,轻松简单,用户可以很快上手,非常实用。有喜有鱼...
7.7/843.7M
色彩光线游戏是一款画面非常唯美的休闲闯关类游戏,游戏有简单的操作和创意的游戏玩法,玩家在游戏里将要帮助光线从一个圆盘跳跃到另一个圆盘之上,非常的有趣!游戏介绍一...
9.3/357.7M
StarbucksKeyboard是星巴克推出的而一款表情键盘,应用中打造了满满都是星巴克风格的Emoji表情,配色非常有辨识度。想喝什么,以后不用打字了,发个...
7.9/918.8M
卡米汽车APP是一款深受广大玩家喜爱的手机软件,汽车保险、汽车精品、汽车改装这里都有涉及到,是一款无比实用的手机神器。卡米汽车APP应用介绍卡米汽车APP,提供...
8.9/235.5M
许多年前人都喜欢租公寓,现代的一些公寓装修风格都非常潮,深得年轻人的喜欢,本站带来了公寓房屋租赁合同范本,可以用来签合同,保障你的权益!公寓租房合同公寓相关介绍...
8.0/448.3M
排兵布阵1.0正式版强势上线发布,经过了3个测试的版本,正式的1.0版本也是免费的发布,本站为你提供的是最新游戏地图免费的下载,还有隐藏英雄密码及游戏攻略!排兵...
7.9/1,957.7M
与神共武2.3正式版是一款非常经典的魔兽防守地图了,给大家提供最新的2.3正式版下载,更新了许多内容,玩法更加多样化,删除了一些物品,地图更稳定,感兴趣的快来下...
9.1/961.6M
会说话的女友虚拟女友,在游戏中玩家可以自由控制这个小姐姐,能给她穿衣打扮、互动说话、挑选食物等等,互动的时候点击不同部位,美女将会做出不同的反应动作哦。会说话的...
9.3/562.6M
易人办公助手是一款集所有办公常用功能的实用软件,包括常用办公工具、通讯录管理、定时闹钟、便签管理等数十个功能,功能多且实用,是办公白领的必备工具。易人办公助手功...
10.0/31.6M
一款画风酷炫的足球游戏,霓虹足球(NeonSoccer),漫画加入科幻的画面,努力的练习你的球技,成为一个足球明星!游戏介绍《霓虹足球》是由Neon2出品的一款...
8.6/890.1M
吴亦凡人教版英语教材点读软件应该有很多人都感兴趣,今天小编就给大家推荐一款这一满足大家要求的软件,有需要的朋友们快来东坡下载吧!吴亦凡英语课本人教版点读软件特色...
8.7/50.5M
让天下没有难找的对象,恋爱百分百app就是一款相亲交友的软件,提供了多种有趣的玩法,每日进行配对,配对在一起的就是缘分。特色介绍1、百分百实名认证2、百分百免费...
9.1/29.8M
一款非常简单的输入法,现代两笔输入法规则简单无须死记硬背,以简拼为主,支持二笔、拼音混输,编码提示功能,适合不会使用拼音和五笔的用户使用。安装方法下载解压后运行...
9.8/1,163.9M
它主要服务于电梯维保单位、维保从业者以及物业单位。对于维保单位,能帮助其高效完成维保任务,提升管理效率;对于维保从业者,可以提高收入水平和职业技能;对于物业单位...
9.3/677.2M
东坡小编分享Android和Ios界面设计趋势分析欧美风ppt模板,包含一体机电脑,键盘,平板,手机元素,有需要的朋友可以点击下面地址免费进行下载使用。Andr...
8.1/626.4M
这是一个需要配合联想智能手环软件,智能电器管理app,通过这个软件可以连接家里的所有智能电器,联想旗下的都是可以的,非常智能化!app介绍联想生活APP是一款对...
7.9/1,123.0M
小哨子是一个课后知识学习平台,让同学们可以随时通过手机学习,许多优秀的老师在这里讲课,适合小学、初中阶段的同学!软件亮点1、精品课程资源2、在线视频教学3、课程...
7.7/324.8M
女皇之刃果盘版是一款紧张刺激的冒险类游戏。手持巨剑的艾丽斯,各种音效层出不穷,而且还有热血的背景音乐,瞬间点燃你的激情。女皇之刃果盘版介绍游戏拥有轻操作酷炫刺激...
8.8/1,268.9M
这是一款小清新风格的休闲街机游戏,钟摆3D手游中玩家点击屏幕控制木板来进行移动,将所有的小球扫下平台,只有清洁干净才能通关。钟摆3D手游游戏特色街机类型的色彩碰...
7.6/1,109.8M
身为电信用户的小伙伴肯定都有这样的体会,就是自己的话费花销情况总是弄不清楚,这样大家可以选择叮咚电信查话费,它不但能够查询到自己话费剩余情况,而且还能够导出查询...
8.2/129.3M
怨偶是一款国风解谜恐怖游戏。游戏有着丰富的玩法内容,画风相当不错。各种剧情可以选择,通过你不同的选择会有不一样的的谜题。操作简单方便,有的地方非常恐怖,胆小的朋...
9.5/1,593.7M
R-StudioNetwork(数据恢复软件)是一款很好用的数据恢复软件,软件能够帮助用户一键恢复电脑设备中丢失或者意外删除的数据文件,非常的便民实用。基本简介...
8.4/968.6M
AlarmRun(夺梦闹钟)是一款另类的闹钟app,它会让你彻底从床上分开,通过时间系统,如果到了时间你还没起床,就会随机从你社交软件抽取一个人发送我还在赖床的...
7.8/549.7M
诸神武装是一款集角色扮演、策略战斗与探索解谜于一体的冒险游戏。它拥有丰富的游戏内容、独特的游戏设定和精美的画面音效。无论你是策略游戏的粉丝,还是对神秘世界充满好...
8.4/993.5M
秋天TV安卓盒子是一款好用的电视盒子软件,为用户带来了丰富的影视资源,可以随时打开手机播放,简单好用,喜欢看电视的朋友可以来下载使用!秋天TV安卓盒子介绍专门为...