使用microsoftspy++工具可以检查系统中所有窗口的层次关系,查看其属性遍历窗口,捕捉并查看特定窗口的消息。查看任意windows界面的handle,caption,class信息.另外DELPHI和BCB里有一个WINSIGHT好像和SPY++差不多。苹果手机区块链赚钱
打开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);
至此,基本操作实现。其实我觉得,只要做的好,完全可以自己做一个界面来,取
代它的界面。
展开内容
7.7/75.2M
影子传说经典手机版是一款优质的经典冒险手游,记得小编小时候还玩过这种插卡游戏,现在手机上也能玩啦,在拯救公主的路上,到处都是敌人,到处都是危机,你将如何化解这些...
9.1/1,209.8M
MoldflowAdviser2016官方版是一款很不错的注塑成型仿真制作软件,软件为用户提供关注外观质量、材料选择、结构优化等功能,利用此款软件可以大大的帮助...
9.2/1,040.4M
资源共享App是一款旨在促进资源高效利用、便捷共享的应用程序。它通过技术创新,为用户提供了一个平台,使得各种有形和无形的资源能够得到更广泛的传播和更有效的利用。...
8.3/1,705.3M
纹身秀,这是一款为做纹身师和爱好者需要的、实用的纹身APP/TattooAPP,有虚拟纹身、纹身展会两项国内首创功能,全新体验,你值得拥有哟!有福利的纹身(纹身...
查看
9.3/1,634.5M
几案设计app是一款家居设计服务软件,为广大用户带来了丰富的灵感和创意,帮助你设计出多套方案,总有一套你喜欢的!软件介绍家居家具设计摆放是不是没有一个好的创意而...
9.0/1,308.7M
萝卜创客是一款方便找人办事,企业灵活用工任务外包的软件,是非常实用的人才共享平台,如果你有一身技能,可以在平台上进行注册,会有合适的用人单位找到你向你发出用人申...
7.7/704.2M
失落大陆是一款非常好玩的角色类RPG魔兽地图。这张地图支持1到10名玩家同时进行游戏。这次的更新也为大家带来了超多好玩的模式哟!有喜欢这款地图的玩家,千万不要错...
7.9/380.9M
拉脱维亚语、汉语转换工具,下载此款软件的用户可根据拼音或者部首查询,内含语音播放教学,读音非常的标准。拉汉汉拉词典介绍1、里面为用户提供了海量词条,涵盖了政治、...
9.2/1,538.8M
lol时间刺客艾克想必很多的人都喜欢玩吧!现在为大家介绍他的最新的一个lol源计划时间刺客艾克皮肤补丁,这个皮肤是完全的含有特效的哦!感兴趣的朋友可以看看哦!l...
9.1/1,222.9M
Diffuse是一个合并和比较文本文件的图形化软件,体积小巧功能强大。支持命令行提示和一个基于GUI的窗口工具包,支持像C++、Python、Java、XML等...
9.9/1,713.4M
Chat人工智能生命体APP宛如一颗耀眼新星,凭借其独特魅力与强大功能,迅速吸引了众多用户的目光,为人们的生活、学习和工作带来了前所未有的智能交互体验。而且它最...
7.7/766.4M
太古仙尊是一款放置类修真游戏,期许还原一个更真实、有趣的修真世界,希望能给各位道友带来全新的修真体验。除魔卫道,炼器成仙,逆天而行,修真之旅巨细无遗,出身肉体凡...
9.3/1,951.0M
点点小说app是一款特别简约的免费小说阅读器,为您带来更加丰富的小说阅读体验,这里的所有网文小说通通免费,而且操作还简单,支持听书,所有热门小说都是及时进行同步...
7.9/1,822.8M
想要科学记录运动数据、解锁健康运动新方式?享走计步app是运动爱好者的必备神器!无论是日常走路、畅快跑步,还是休闲骑行,它都能精准记录步数,自动统计运动数据。不...
9.4/152.0M
这款软件是一款轻松的相机学习app,超多美颜知识可以了解,随时随地进行滤镜更改,软件滤镜种类是非常之多的,可以让脸部滤镜更加美丽!快云美颜相机app介绍美颜相机...
9.4/1,984.1M
点亮星空九游版是款Q版的冒险手游,二次元国漫风的回合制放置类h5游戏,丰富的主线剧情玩法体验,在游戏中玩家可以自己的解锁不同的英雄前去战斗。点亮星空九游版说明1...
9.6/1,775.0M
疾风剑魂是一款3D横版动作格斗类手游。应该有不少玩家都有玩过这款手游,小编今天给大家带来了疾风剑魂无限金币版,通过领取金币宝箱即可获取无限金币。赶紧下载试试吧。...
8.1/1,140.6M
bof共享男友app是一款专门为单生女生用户打造的手机社交软件,目前该软件十分的火爆,用户在这里可以快速寻找终生伴侣,功能非常多,可以满足广大网友的需求,欢迎有...
8.6/1,728.3M
拍圣app是一款能省钱又能赚钱的电商购物平台!有了它用户每天购物都能先搜券再下单,买的多省的多,并且每天推广平台商品还能赚取高额佣金,佣金支持提现,心动的小伙伴...
8.4/147.6M
这是一款区块链赚钱软件,通过这个软件你可以自己种植各种茶叶,可以在线管理各种茶树,分享给你的好友还能赚钱,通过区块链的加密技术!软件介绍茶源世界app是一款类似...
8.1/9.6M
燃烧吧火焰上线送SSR礼包版一款一款华丽特效百变时装与百款少女约会的卡牌养成游戏,0肝0氪解放手指同时欣赏百款少女带来的视觉冲击,同时该游戏结合了轻松的约会模式...
8.8/633.0M
花样手机菜场app主要让您不用出门就可以享受买菜送菜的软件,天气这么热,出去买菜还是很不方便的,有了这个软件,让专业的人为你搞定吧。花样手机菜场app特点新鲜—...
7.8/1,203.8M
有需要下载云南烟草交通安全app的朋友们可以来我们东坡,这里我们小编为大家提供了云南烟草交通安全ios手机版下载,目前只有苹果版,为大家带来最新的云南烟草相关的...
8.6/90.8M
lazada官方中文版这个平台有点是有点类似某宝的,只是这个面对的人群更为广泛,是针对东南亚地区的,是一个跨境电商平台,也支持中文版,所以大家可以在这里买到一些...