金山词霸的词库读取程序(补充)

news/2024/11/29 1:45:53/

好几天没有发帖子了,对不起各位支持我的朋友! // bow
因为这几天工作终于有了着落,在据了2个offer后,终于又收到了
一个不错的offer,难道是事不过三?不过同时还有一个很有希望、
也是我更加心仪的公司,现在正在催他们索取最后的结果。请大家
不要说我骑驴找马啦(幸好,驴也是一头好驴)。

奉上一篇《金山词霸词库读取程序补充》。
发表了《金山词霸词库读取程序》后,得到了不少朋友的支持。在那篇文章的
最后,我给自己提出了一个更加高的要求:如何读取单词的解释?因为直接使用
GetWindowText()是得不到的(原因未知)。昨天,我按照自己原来提出的思路
进行了这个工作:获取单词解释窗口的句柄,发送Ctrl+A和Ctrl+C,然后从剪贴板中读取。

1:使用Spy++跟踪单词解释窗口,跟踪Ctrl+A和Ctrl+C的消息,发现Ctrl+A有4个
消息:WM_KEYDOWN,WM_KEYDOWN,WM_KEYUP,WM_KEYUP。

2:程序中使用和读取单词解释一样的循环,不过不是使用GetWindowText(),而是向
窗口发送消息,但是...失败!不知道为什么,我发送4个消息后,会自动产生一个WM_CHAR
消息。实际上,WM_CHAR就是由WM_KEYDOWN和WM_KEYUP自动生成。于是我使用了SendMessage()
这样就会把自动生成的WM_CHAR消息延迟到我们发送的4个消息的最后,但是仍然无法从剪贴板
中得到数据。

3:放弃了发送键盘消息欺骗窗口的做法。换一种思路:用户可以使用鼠标右键菜单,选择“全选”;然后再使用鼠标右键菜单,选择“复制”,同样可以实现Ctrl+A和Ctrl+C的功能。嗯,听起来不错!

4:如何知道菜单项的菜单ID?相信许多朋友也做过:使用VC打开金山词霸的主程序:xdict.exe,
记住在打开文件窗口的“Open As”中选择“Resources”,即以资源方式打开,我们就可以看到
xdict.exe的资源了!可以知道:32791是“全选”的菜单ID,32775是“复制”的菜单ID。

5:修改程序,对每一个单词,向单词解释窗口发送32791和32775的WM_COMMAND的消息,结果...
剪贴板中还是没有数据。

6:其实没有太大的问题了:再次使用Spy++跟踪,发现这2个消息实际上是发送给金山词霸的主窗口,而不是直接发送给单词解释窗口的。OK,不用我多说了吧!

最后给出代码:

最后的讨论:
1:原来以为程序会把单词读取慢很多,实际也只慢了一倍左右(用时2个半小时)。:)
2:加快一点速度:不是每次读取解释后,就写入文件。建立一个内存缓冲,比如100K,每次读满
buffer后才写文件,应该可以加快一点速度。不要忘记最后关闭文件前也要把buffer的数据写入。
3:如何读取详细的解释?选择一个单词后,按<回车>键或者双击,单词解释窗口可以显示很长的
详细解释。这个工作会更加麻烦一点了,暂时我不再研究了(这次是真的!)。

注意:程序运行过程中,千万不要在其它程序中使用Ctrl+C,Ctrl+X的功能!!!
我写下此文时,无意中使用了一次Ctrl+C,结果粘贴时出来了某个单词的解释!看来
可能有某个单词的解释被我的Ctrl+C覆盖了!痛苦!程序运行需要2个半小时,以后
发现了哪个单词的解释有问题再修改吧!


http://www.ppmy.cn/news/842281.html

相关文章

谷歌浏览器插件安装 音量提升插件Volume Control

最近在B站看一些学习的视频&#xff0c;虽然内容质量高&#xff0c;但有些视频音量属实低&#xff0c;谷歌浏览器有个插件&#xff0c;可以控制浏览器中的内容音量&#xff0c;最高可提升到600%&#xff0c;这个软件就叫Volume Control。 包虽然好找&#xff0c;但下载下来&…

金山词霸2009sp3 (解决字典消失、屏幕不能取词问题)

姓名&#xff1a;杨正祎&#xff08;阿一&#xff09; 互联网工作者&#xff0c;专注于互联网项目开发与开发&#xff0c;擅长于符合Web标准的页面设计制作&#xff0c;互联网项目管理。现就职于上海沪江网 http://www.cnblogs.com/JustinYoung/archive/2009/05/10/jinshancib…

你在AutoHotKey面前居然敢比调音量

2007-08-09 作者&#xff1a;花的神明 来源&#xff1a;cfan.com.cn 当你正在电脑游戏中酣战之际、或者正沉浸在动作大片紧张激烈的情节中、或者正在全神贯注的聆听优美动听音乐……&#xff0c;在这些场景中&#xff0c;如果你需要迅速对音量进行调节&#xff08;例如增大减小…

第10章-音量音频输入麦克风控制

机器翻译结果&#xff0c;仅用于学习&#xff0c;不喜勿喷&#xff0c;原文档链接。 任何从事音频spec工作的人都可能会告诉您&#xff0c;他们的大部分时间都花在了有关音量控制的讨论上。这是一个比音频质量产生更多争论的话题。原因是双重的。第一个是关于音量感知以及如何…

金山词霸2011 vs. 有道词典4.0

金山词霸2011 vs. 有道词典4.0 作者&#xff1a;chszs 转载请注明出处&#xff01; 发现金山词霸2011不如有道词典4.0的一个地方。那就是&#xff0c;金山词霸2011不支持Google Chrome浏览器&#xff0c;无法用鼠标直接译词。 而使用有道词典4.0&#xff0c;可以轻松地在Googl…

如何使用WordPress构建一个亚马逊联盟商店

您想使用 WordPress 建立亚马逊联盟商店吗&#xff1f; 亚马逊联盟商店允许您作为联盟会员销售亚马逊的产品&#xff0c;并在每次销售中赚取收入。由于启动和运营成本较低&#xff0c;亚马逊联营店是开展新业务和在线赚钱的最简单方法之一。 在本文中&#xff0c;我们将向您展…

天池大赛中药说明书实体识别挑战冠军方案开源(二)部署运行实战 附详细操作说明

目录 Introduction 导言环境搭建环境 Github地址项目目录说明使用步骤下载预训练模型更改部分代码模型训练参数设置BERT-CRF模型训练BERT-SPAN模型训练BERT-MRC模型训练 运行训练预测复赛 test 文件 &#xff08;上述模型训练完成后&#xff09; 参考资料其它资料下载 Introduc…

905l3a sdk

905l3a为amlogic