打开microsoftspy++,在工具栏选择Find工具,在弹出的windowsearch窗口中拖动Findertool的图标至目标窗口即可.波克棋牌百度图片
使用microsoftspy++工具可以检查系统中所有窗口的层次关系,查看其属性遍历窗口,捕捉并查看特定窗口的消息。查看任意windows界面的handle,caption,class信息.另外DELPHI和BCB里有一个WINSIGHT好像和SPY++差不多。
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);
至此,基本操作实现。其实我觉得,只要做的好,完全可以自己做一个界面来,取
代它的界面。
展开内容
9.0/1,497.0M
LightPink2,一款最新推出的滤镜相机,拥有30多个专业设计的模拟滤镜器,50多个偏光效果,使用高级编辑工具进行个性化您的照片。LightPink2相机介...
9.4/240.8M
手机主题桌面的图片是每一个喜欢手机的朋友最喜欢的地方!那么怎么样才能使自己的手机桌面变得更潮,更好看了?这时你就需要小编的这款魔秀桌面app主题美化大师来帮你进...
8.3/146.3M
正义荣耀ios版魔幻风格的角色冒险类的游戏,炫酷的战斗效果释放,恢弘的战斗体验,激发每位英雄的潜能。正义荣耀ios版职业介绍创角阶段,有四个不同的职业可以选择,...
8.1/342.8M
今天是感恩节,在这个节日里有不少的朋友会通过发说说空间等方式来表达自己的心情,今天小编为你们带来了2017唯美感恩节带字祝福图片与祝福语,有需要的朋友可以来东坡...
8.7/501.4M
星露谷物语中收获了很多的农作物,这些农作物没有价格显示很麻烦,星露谷物语农作物价格显示mod,可以显示农作物的价格,需要的朋友可以免费下载安装。星露谷物语农作物...
8.2/1,675.0M
爱上鄂州app是鄂州本地官方融媒体平台,这款app的功能上基本能完全涵盖在鄂州的衣食住行。生活缴费,公交出行,公积金,停车,就业码,就医挂号,查询社保等,都可以...
9.0/1,891.9M
航航益智连连看,专门为宝宝打造的益智游戏,收集了生活长江的水果、动物、家人等,将相同的进行连接消除,锻炼宝宝的观察力。儿童早教益智连连看安卓版介绍儿童早教益智连...
9.4/576.1M
虽说是像素风,但是可玩性非常高,关卡道具设计的很用心的2d卷轴冒险游戏,深层堡垒(DeepFortress)中有很多的帽子可以解锁,还有戴着牛角的马里奥哟,趣味...
9.1/856.1M
国庆即将到来,同时到来的还有我们的中秋佳节,在这里小编为你们带来了迎国庆庆中秋的手抄报,这些手抄报都是经过小编精选了的。有喜欢的朋友就来东坡下载吧。精选手抄报迎...
9.6/1,744.0M
问雄淘宝长尾关键词采集器(淘宝长尾关键词提取器)是一款绿色好用的针对淘宝进行长尾关键词的采集抓取工具。软件功能强大,数据源于淘宝官方,软件根据输入的原关键词(可...
9.8/1,316.5M
WDSmartWareSoftwareUpdater是西数为您设计的最新备份软件,您可以与您的西数移动硬盘共同使用这款免费软件。软件备份速度快,操作简单,欢迎下...
8.5/1,188.3M
一起甜美相机app是一款自带美颜的美颜相机,大量可爱贴纸、拼图模板、质感滤镜、海报边框免费用,随时随地拍出满意照片,让手机拍照、修图更省心,合影自拍更便捷。一起...
9.5/425.1M
做微商的朋友怎么能少了这款微商虚拟定位神器——微商定位助手呢!真实地改变手机的位置信息,让你可以随时漫游到全国各地。可以适用于所有的社交类软件。自由漫游到大学、...
8.2/600.6M
不思议冒险手游是一款非常好玩的游戏,可以让你在线玩到爽为止,自带很多让你开心快乐的元素,这里的人物都是一些英雄人物,玩起来很容易上手。游戏说明萝莉?女仆?不,是...
9.7/539.2M
橘子UPX加壳压缩可以很大程度的减小编译出来的软件体积,而且经过处理后的软件不会被各种杀毒软件误报有病毒,很多修改功能的软件总是被杀毒软件直接屏蔽了。upx加壳...
8.6/1,385.9M
唐诗三百首儿童学习软件中汇聚了大量的经典唐诗供孩子进行学习,分类特别详细,对每首唐诗都有详细的注释和赏析,帮助孩子更好的理解古诗词。唐诗三百首儿童学习介绍唐诗三...
9.1/7.3M
小号多开app是一款非常好用的免费双开助手软件,利用这款软件,用户可以将手机中的各种应用来进行双开进行使用办公,另外软使用起来无任何卡顿,非常给力!软件介绍1、...
查看
8.1/216.4M
一乙app是一乙农业为亿万家庭量身打造的综合性生活体验平台,具有线上种植、养殖,认养家畜、果树,订制原浆私酿,一键订购优质家庭必需品等功能,让您足不出户就能享用...
9.2/28.8M
游戏厂商LionStudios打造的一款新出的艺术休闲游戏,全民来涂鸦(StencilArt:SprayMasters)安卓版,这里有丰富的关卡选择,利用可爱的...
8.7/712.5M
猜成语领红包,1000金币≈10元,提现秒到账!芜湖人玩疯了!猜成语还能领红包,1元就能提现!游戏游戏玩法简易,游戏玩家在这儿能够根据持续的猜成语开展,取得成功...
7.9/1,735.1M
数学思维启蒙,逻辑训练教育游戏,切割、组合具象的积木,让小朋友理解数字概念!启动火车竞速,加入机器人对战,提升数学计算能力!2-6岁是孩子数学启蒙的关键时期,有...
8.5/688.5M
手机上不可缺少的一款软件肯定就有词典,不管是英汉词典,还是其它的英文词典都是学生和商务人员所需要的!下面这款必应词典就是一款很不错的英汉词典,有需要的朋友可以下...
8.4/1,728.3M
爱国漫app是一款看漫画的应用,新漫画特别多,能够让大家随心所欲地去观看喜欢的漫画。应用会实时更新最新的漫画作品,让用户随时掌握最新的漫画资讯。爱国漫还为大家打...
7.6/1,175.3M
亿图拓扑图制作软件是一款类似Visio的流程图、网络图制作软件,操作便捷,功能十分强大,可以很方便的绘制各种专业的业务图,程序图,数据图,网络拓扑图。 ...