打开microsoftspy++,在工具栏选择Find工具,在弹出的windowsearch窗口中拖动Findertool的图标至目标窗口即可.The Fittest: Battle Royal(适者生存皇家战役)3.0.0 正式版
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/439.1M
正点巴士app是一款专为用户打造的交通精准查询软件,用户通过这款软件能直接精准查询路线,定制专属巴士接您上下班,满足你的出行服务,绿色环保而且还节能,让你的出行...
8.4/94.3M
重力球跳跃GravityBallJump是一款魔性的休闲跳跃游戏,玩家需要控制小球在平面中不断跳跃,小心避开黄色区域,及时的反应很重要,还有不同外观的小球可以选...
7.8/1,788.0M
思仙0.1折无限刷宠版这款游戏十分良心,画面精美,游戏的基础玩法随着等级的提升自然就了解到了,整款游戏的战斗方式是自动战斗的,对于个人而言还是比较中规中矩的。但...
8.5/543.6M
铁路大亨3修改器(铁路大亨3三项属性修改器)是一款功能齐全的系统软件,是一款同名下的游戏辅助工具,是一款不可多得的好软件,铁路大亨3是一款策略游戏,玩家可以通过...
9.6/80.9M
《学生戒手机》是一款工具类应用,主要用来帮助用户戒除手机依赖症、提升工作和学习的效率。其包括以下主要功能:1、锁机功能直接让用户在指定的时间内无法使用手机2、任...
9.3/1,177.7M
不思议地下城无敌版各种不同的角色玩法特性符合角色人物的设定,是攻击力还是攻击距离,多种关卡设定越来越难,需要玩家收集各种人物角色进行配合,还有更多奇怪陷阱等你来...
7.5/77.4M
B站UP主@宅宅萝卜在其原版的改版PVZ_LG版本的基础上的一个改版,和原版不兼容,不覆盖,同个手机只能玩一个版本,目前bug还是有的,原版也会继续更新,很多植...
8.6/504.0M
超级灌篮是一款史上最火篮球游戏,喜欢玩篮球小游戏的小伙伴福利来了。精美的游戏画面,炫酷的技能。还有丰富的游戏模式,困难的关卡等你来挑战,快来试试吧!超级灌篮游戏...
9.0/227.4M
课课作业app是为小学生家长准备的一款可以检查作业以及老师布置作业的神器,适合现在很多的学生免费的下载使用,可以全方面的提高你的孩子学习能力!课课作业app主要...
9.9/1,450.4M
僵尸杀戮7游戏中有着各种不同的死亡僵尸突变体等你来战斗,玩家需要计划作战布局,召唤更多的幸存者来提供帮助,齐心协力消灭更多的僵尸。僵尸杀戮7游戏介绍僵尸杀戮7游...
7.5/1,510.6M
520表白表情包是一款专门为单身准备的表白表情包,还帮用户提供搭配表白的段子,真诚又直接,不怕被拒,就怕你们勇气,快来跟你喜欢的人表白吧!主要内容1、对你的好感...
8.1/1,936.5M
企业级人事管理软件,智仁app是英诺森软件科技有限公司打造的移动办公软件,精准定位各项需求,协助企业用户数据更新。不断升级,致力于提高办公效率,实现各场景应用需...
9.2/1,464.1M
NBA2K14是2KGAMES出品的篮球系列第16部作品,优秀的手感加多种游戏模式,让你欲罢不能。该款修改工具在使用中可帮助玩家修改多个基础属性,仔细阅读说明,...
9.0/1,766.1M
今天小编给那些很注重时间观念的朋友,推荐一款免费高效的时间任务管理工具--91todo任务管理!你的团队或者是个人有了这款91todo任务管理,就可以把自己的行...
8.8/1,309.0M
这是一款阅读漫画小说的神器,与众不同的是这个软件上的小说都是漫画的形式,给你不一样的体验。如果你有作品的话也可以上传到软件上。软件介绍有声音的纸片人?!任我选择...
9.0/1,375.8M
专注于职业教育的软件,京华课堂app在线高效智能配课专家,有海量的课程内容,丰富的资料内容,支持视频离线下载,没有网络也可以学习。功能介绍通俗易懂,事半功倍:扔...
7.5/1,419.9M
敏儿YY频道自动刷花工具是一款绿色免费的由网友敏儿制作的YY自动刷花工具。自动刷花工具是专门用来给自己喜欢的主播刷花花的一款小工具,无需人工守着刷花花,花花冷却...
8.5/1,650.9M
逆转人生2是一款玩起来非常不错的红包手游,在游戏中你将开启一段属于你的创业之路,游戏中有超多红包奖励可供领取,都是可以提现的现金红包哦,感兴趣的小伙伴快来东坡下...
8.0/1,989.3M
胭脂少女滤镜app是一款全新的少女系列滤镜相机软件,软件最大的功能就是滤镜功能了,用户可以将照片一键进行美颜,最重要的是美颜之后没有明显的的痕迹,和自然拍照的差...
7.8/12.2M
值管家app能够帮助你绑定家庭的智能设备,就算在外也能随时观察家里的动态,一旦有什么危险可以及时的采取措施,再也不用担心家里的安全问题了。软件介绍“值管家”是值...
7.8/1,750.5M
医学考试学习软件,酷哥医考app有丰富的医学考试课程,题库,做错题目了有详细的错题分析,帮助大家更好的参与学习。软件介绍此为考略医考新版离线播放器,视频需要下载...
8.6/1,016.7M
侠客传说是一款超好玩的休闲游戏,在游戏中你选择好角色之后便开始暗杀任务,越到后面对玩家的要求越来越高,精准暗杀不要犹豫,快来东坡下载体验吧!侠客传说游戏介绍你将...
8.1/114.3M
乐写字还一款儿童书法教育软件,联合国内外数十名知名书法教育专家十余年的教育经验,以现代技术赋能传统书法教育,为中国广大的青少年提供系统、正规、科学的智能书法练字...
8.4/961.4M
戏精配音APP可以带给用户诸多趣味配音玩法和体验的工具软件,其中拥有丰富的素材库,宛如一座琳琅满目的声音素材宝库,满足不同用户的多元需求。还有各类广告文案,无论...
9.9/683.7M
酷么课堂家长端方便家长接收校园通知,及时的和老师进行沟通联系,随时了解孩子在学校的动态,让孩子的学习尽在掌握。酷么课堂家长端官网介绍酷么课堂家长版,孩子的学习情...