使用microsoftspy++工具可以检查系统中所有窗口的层次关系,查看其属性遍历窗口,捕捉并查看特定窗口的消息。查看任意windows界面的handle,caption,class信息.另外DELPHI和BCB里有一个WINSIGHT好像和SPY++差不多。新凌印APP下载安卓手机版-新凌印无广告版4.2.0 最新版
打开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);
至此,基本操作实现。其实我觉得,只要做的好,完全可以自己做一个界面来,取
代它的界面。
展开内容
书签加密工具(Private Bookmarks)1.4免费版
兴农宝app下载-兴农宝3.2.1 安卓版
无线猫灵安防app下载-无线猫灵安防系统1.0.1 安卓版
角斗场霸主汉化补丁1.0 绿色版
黎明重启生存手游官方版下载-黎明重启生存游戏1.0.29 安卓版
武士忍者风暴(Samurai Ninja Strom)1.0 安卓版
巫师论坛苹果版-巫师论坛ios版1.0.0 官方版
农业行政执法文书管理系统1.0 官方版
萌宠冒险记苹果版下载-萌宠冒险记iOS版1.1.8.3官方版
NBA2K14MOD下载-NBA 2K14比斯利玉米头版面补分享版
数码照片伴侣(按照目录、多选文件方式批处理照片)V1.20 绿色免费版
消灭僵尸鱼游戏下载-消灭僵尸鱼1.0 安卓最新按
膳呗app下载-膳呗app最新版2.3.1 手机版
卧虎藏龙贰ios下载-卧虎藏龙贰苹果版1.1.17 官方版
光明旅者中文版下载-光明旅者安卓下载(Hyper Light Drifter)1.1.91 官方最新版
摩斯密码app-Morse Code(摩斯密码手机客户端)3.5.2 汉化修改版【去广告】
7.9/1,962.2M
大家都知道摩斯密码吗?也就是非常古老、保密性非常高的摩斯密码应用类手机客户端,汉化版的,让你不仅仅能够使用英文版、日文版、韩文版还能够直接选择汉化版的哦!摩斯密...
7.5/1,759.9M
努力经营和发展一家工厂,扩大规模,雇佣更多的员工,并为世界提供大量的原料,不断升级机器,享受更多的乐趣,赚取更多收益,有趣的体验,体验更多的经营玩法。马铃薯大亨...
QQ飞车手游官网手机版下载-腾讯QQ飞车手机版1.0.3.7424官网手机版
7.8/712.2M
QQ飞车手游官网终于上线啦,该游戏是由腾讯端游移植到手机端版本,游戏拥有精美的游戏画质,游戏玩法十分的丰富,感受指尖漂移的体验,欢迎喜欢的朋友前来东坡下载体验!...
冥钱纸包封面怎么写-2016中元节冥钱纸包封面大全最新整理版
8.8/710.3M
2016年七月过半,中元节就要到了,俗称鬼节,在这段期间需要烧冥币祭拜,冥钱纸包封面怎么写呢?东坡小编整理了2016中元节冥钱纸包封面大全,还有详细的写法,大家...
9.4/1,593.2M
平安e骑app是一款专为外卖小哥打造的电瓶车实时信息监督软件,app上拥有最全面的电动车状况监测信息,还能够实时显示电瓶车剩余里程和质量,智能防盗系统保障车辆安...
8.8/1,827.0M
灯塔语录app是一款可以看各种心灵鸡汤的软件,这里有静心治愈的短句,也有困难时期给我们指引的明灯,还有美文金句,个人成长相关的各种哲理句子,很多都是名人名言,值...
7.5/690.7M
金米管家app,是一款金融理财记账工具,所谓亲兄弟明算账,用户可以把自己的收支都记录下来,还可以生成收支曲线,垂直记账,严格风控,操作简单。新手福利1.新手专享...
职业生涯规划ppt模板下载-职业生涯规划ppt模板免费下载【精美模板下载】
9.7/174.9M
这是一篇关于职业生涯规划ppt模板,该模板共有11页内容制作十分精美细节制作十分精细,非常完美的一篇ppt模板,有需要对自己的未来进行规划的朋友们可以来我们东坡...
9.4/1,730.3M
黎明对决是一款以世界毁灭后的末世为背景,集经营、策略、动作为一身的手机游戏,画面宏伟大气、玩法新奇刺激。在游戏过程中,玩家不仅可以建设自己的避难所大楼,采集分配...
智慧商贸进销存免费版下载-智慧商贸进销存免费版9.9.1安卓最新版
8.8/1,758.7M
智慧商贸进销存免费版是一款针对门店的进销存管理软件,用户下载这款软件就能够在上面进行非常便捷的日常记账需求,app涵盖的功能非常丰富,并且免费没有广告,非常的强...
8.2/1,770.7M
oppo阅读是专业的网络小说阅读器,拥有大量正版图书阅读资源,网络资源非常丰富,网上最想看的好书不断更新,另外阅读没有任何障碍,根据输入的关键词进行查找让用户可...
叶罗丽星光灿烂手游下载-叶罗丽星光灿烂手游1.1.0 免费版
9.4/1,411.6M
叶罗丽星光灿烂是一款好玩的跑酷+换装游戏,融合最好有趣的玩法,玩家可用通过跑酷玩法赚金币,用金币来兑换服装和饰品,合理搭配,装扮你的小萝莉!叶罗丽星光灿烂手游介...
专业电费单打印系统-易达电费发票收据打印软件30.4.9官方版
8.9/1,132.5M
易达电费发票收据打印软件是一款专门为屋主打造的一款电费单打印系统,这款软件可以帮你自动调出上次电表抄见度数,自动计算出用户电费使用量和金额,你只需要输入小写金额...
8.9/504.9M
新材料在线是一款整合各个行业的最新信息发布的平台app,为各个行业的新材料信息提供最新消息,为新材料行业的员工提供一个最专业的平台,帮助企业共同探讨新材料行业的...
8.6/155.4M
这款游戏是经典好玩的贪玩蓝月赚钱手机游戏,在游戏之中可以玩蓝月传奇赚钱哦,超经典的赚钱游戏体验,各种不同的玩法模式,体验独有的贪玩游戏乐趣哦。贪玩蓝月社会版高爆...
8.1/10.3M
一人带五宠策略战斗手游,游戏画面十足还原电影,共开放了5个职业,每个角色可以同时上阵一个主战宠,对手随机切换合适的职业就行战斗。游戏简介旋转、飞翔、跳跃~这里是...
8.1/999.8M
美图段子手机版是一款可以看各种段子的手机软件,时间就像厕纸,扯着扯着就没了,但是看段子却无穷无尽,人生充满了段子,每天开开心心的了个不停。软件怎么用打开app就...
9.7/1,407.5M
法师小妹游戏是一款放置类休闲游戏,游戏内容很多,细节很全,很多模式提供了各种方式,但仔细去玩却发现可玩性其实不高,其实这个游戏做的还比较良心,广告都在可接受范围...
indiecross泄露版下载不用装-FNF indiecross v1版1.3 泄露版
7.6/929.5M
周五夜放克FNFIndieCross优质模组的V1版本,这个版本不是正式版本,是之前泄露的版本有人一直做了一个游戏版本,也可以在谷歌上下载,这里小编带来的就是谷...
7.6/1,214.8M
用钱进是一款手机贷款软件,软件支持多个贷款平台,用户可以根据自身需求选择贷款项目,软件操作简单,使用方便,一键申请,后台审核通过极速放款。贷款步骤:点击申请贷款...
8.8/1,340.3M
迅雷心声ios版是一款通过声音读懂人类内心真实想法的软件,它通过分析人类说话时的语速、语调、快慢,再结合对话场景及历史数据,就可以解析出说话者当下的真实心里想法...
宝石大冒险gemadventure手游红包版-宝石大冒险游戏赚钱版v1.7.2福利版
8.3/1,887.8M
《宝石大冒险》这是一款关于猪猪合成的一款趣味性的赚钱小游戏,在游戏中里面将有超多的可爱的猪猪,需要将里面的猪猪进行合成,合成的等级的越高赚钱越多,让其可以轻松的...
一点公益app下载-一点公益(公益软件)手机版下载最新用户端
9.4/354.9M
一款公益软件,在这款软件中你可以找到志同道合的人,和别人一起做公益,喜欢的朋友还在等什么,快下载一点公益(全民公益软件)吧。一点公益(公益软件)手机版功能1.了...
8.8/401.4M
BeautyPhoto是一款非常不错的手机图像处理软件,在这里它能够帮助用户轻松处理众多软件,并且还有众多过滤器等调整照片功能,非常好用,喜欢就快点来下载试试吧...
7.9/342.9M
金馆长穷死了表情包我很穷,穷死了我很穷,穷死了各种穷的表情包图片,而且大家还可以免费下载和金馆长一起玩表情,没有钱,哭穷是我们最常做的,如果有人向你要钱你就发表...