打开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);
至此,基本操作实现。其实我觉得,只要做的好,完全可以自己做一个界面来,取
代它的界面。
展开内容
8.0/1,655.2M
快捷记账软件app是一款非常简单方便的记账软件,在这里你可以轻松记录你的日常开销,各种记账明显都会清晰的显示在你的手机上,方便你随时观看的你账目,喜欢就下载吧内...
8.0/380.0M
电子烧香是一款手机模拟烧香祈福的软件,现在很多地方都禁止烧纸祭祀,毕竟很容易引起火灾,所以现在电子祭拜也越来越火了,心诚则灵,这款软件可以让你体验真实的香味和蜡...
7.6/562.0M
Autodesk公司专为cad制图者专门打造的AutoCAD2018正式版已经发布,新版对软件做了关联的调整,界面看起来更美观简洁,可以选择外的对象,还可以自己...
7.8/1,085.1M
滚动的天空RollingNature饭制最新版本,这个版本是在原版的基础上修改以及增加了一些关卡的新版,玩家自制,很多饭制的版本内容不输于官方版本的,这个版本也...
9.3/550.4M
WondershareTunesGo是由Wondershare出品的一款Windows和iOS设备间传输文件的工具,原名叫[MobileGo],这款软件是Win...
9.4/722.0M
每个人都有自己的公主梦、王子梦,这款一键生成本人mv广告视频软件就能够帮助你实现自己的梦想,可以免费把你自己制作到视频当中,成为广告宣传片的主角,有婚礼视频、小...
9.5/1,024.2M
无主之地传说游侠汉化补丁是游侠网LMAO汉化组制作的《无主之地传说》游戏汉化补丁,安装之后可以将英文版游戏汉化成简体中文版,让国内玩家都能够轻松看懂游戏内容,方...
9.4/981.6M
一日三餐关系到我们的健康,所以要进行合理的饮食,舌尖日记app为你进行合理的饮食规划,对食物的热量进行科学的分析,让你健康每一天。功能介绍1、食物查询:说出名字...
7.9/1,945.3M
现在的年轻人无论做什么事都要自拍一下,在空间或者朋友圈和大家进行分享,小咖相机是一款功能强大的自拍神器,为用户提供了非常棒的自拍体验,即使是新手也能拍出非常棒的...
10.0/798.3M
这是一款优质艺考培训类型软件,给广大艺考生提供一个视频培训平台,包含各个艺术高校老师在线教学,讲解艺考一些细节,提升你的艺考成功率!软件介绍艺考达人APP,是一...
9.5/437.0M
智慧社群APP是一款手机优惠购物手机app,是所有网民都能用的“综合性导购优惠返利平台”。平台每天把80%以上的收益拿来按用户持有共建值比例进行分红。平台汇集了...
8.9/736.4M
次元方舟是一款二次元战棋策略游戏,有各种各样有趣的副本等着你去挑战,还有上百种不同类型和风格的超强英雄等着你去招募。根据每个英雄的不同资历和属性,玩家获得的难度...
9.0/158.2M
在你的汽车中探索街道,在这个逼真的汽车模拟器中,在逼真的购物中心环境中展示您可以充分利用自己的驾驶技能!学习驾驶12辆超棒的汽车,这些汽车的尺寸、性能和操控性各...
8.1/389.3M
冀云孟村手机客户端传播本地美好生活环境,平台以“新闻+党建+政务+服务”为中心所打造的综合性服务平台,孟村本地事第一时间知晓,在线办理各种政务及生活服务,给孟村...
7.7/634.2M
虽然大家在玩魔兽的时候,平台都会有自带的改键系统,但是我们这里为大家带来的这个魔兽改键精灵多功能版功能更加的齐全,可以帮助大家能够更加舒适的体验游戏,还有大家在...
9.0/678.2M
真我欲封天果盘版是一款根据同名小说改编来的武侠类游戏,游戏采用3D引擎打造高清恢弘游戏场景,完美还原小说经典人物形象,拥有精彩丰富的游戏主线剧情,让你感受武侠游...
9.8/1,484.5M
每天小编就为两件事发愁,中午吃什么以及晚上吃什么。工作的繁忙使得每天的伙食都在外面解决,公司附近的餐厅基本都吃腻了,有时想换个口味,但是却不知道哪里有好吃的,还...
查看
8.2/1,331.8M
南宁同城游是一款游戏大厅,在这里大家能玩到各种麻将、斗地主、拖拉机、象棋等类型的游戏,全部都十分经典,游戏内杜绝开挂,没有花里胡哨的特效,有的是十分经典的游戏玩...
8.1/1,281.5M
配套相应相应的硬件一起使用,斑点猫可视门铃app绑定设备后就可以通过手机远程查看屋外的情况,时刻保护家人安全。功能介绍心安之处,方为家,斑点猫可视门铃APP,安...
8.5/1,609.2M
凡人修仙传本是一本畅销的小说,现在不仅做成了网络游戏,还有单机版的游戏,国产大作,可以一试。那么在游戏中各位玩家通过该修改工具来修改各个基础属性,欢迎使用下载。...
9.9/827.7M
这个软件是一款云盘软件,你可以上传文件在上面然后直接的分享,解放云盘上传速度还是非常的快速的,直接注册就免费的使用!让大家使用放心!解放云盘app介绍解放云盘(...
8.6/69.2M
曙光英雄英雄图鉴大全2024这个是7723打造的一个针对于曙光英雄手游英雄图鉴整理的辅助软件,主要就是帮助大家整理了游戏中的各个英雄,进行了分类,每个英雄都有详...
9.1/1,566.0M
AndroidStudio2.4是一个用来开发安卓软件的集成开发工具,集成了各种安卓开发工具和调试工具,方便程序员,快来下载吧!AndroidStudio2.4...
9.7/301.3M
BLUX广东人才培训网自动学习挂机工具是一款非常不错的培训学习软件。功能还是很强大的。有需要的可以来东坡下载使用!BLUX广东人才培训网自动学习挂机工具说明BL...