好几天没有发帖子了,对不起各位支持我的朋友! // 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个半小时,以后
发现了哪个单词的解释有问题再修改吧!

金山词霸的词库读取程序(补充)相关推荐

  1. 金山词霸的词库读取程序

    啊哈!金山词霸的词库读取程序完成! 经过这个周末2天的奋战,终于完成了一个金山词霸的词库读取程序!当然,中间还看了2场欧洲杯,以及和老婆玩了几回坦克大战,否则可以更快完成吧! 做这个程序的动机很久了, ...

  2. 关于利用金山词霸的词库

    我机器上装了金山词霸2003.一直对金山词霸的词库很感兴趣,在网上搜了一下,发现没有什么有价值的资料.但是其词库文件的头部有明显xml迹象.网上一篇文章也说其实质是xml定义的数据库文件,那么它的音频 ...

  3. 取金山词霸词库的程序

    这是我学C++的时候写的 当时没贴出来怕影响不好 现在看来是想错了 呵呵 供大家参考参考 有点小问题 忘高手点拨 不明白 为什么 每几十条记录就重复3条2条4条不等 不报错 代码如下: #includ ...

  4. 行业词库收集程序已经开源

    前些天国庆在家,没网上. 地址在 http://code.google.com/p/wordseeker/ 采用Apache协议,对商业友好.

  5. 自编记单词小程序项目(自定义词库,多功能)C/C++语言实现

    一款方便实用又简洁的记单词小程序,自定义单词库,多功能协助记忆!!! github地址:https://github.com/Knock-man/Memorizing-words-program 如今 ...

  6. 折腾词库,一个词库互转程序

    我在之前写过一个小程序,用于实现QQ拼音.搜狗拼音.谷歌拼音和百度手机拼音输入法词库的互转,文章地址是:http://www.cnblogs.com/studyzy/archive/2009/12/3 ...

  7. bat 等待输入_深蓝词库转换 - 简单的输入法词库转换工具

    深蓝词库转换 是一款 输入法词库转换 软件,支持包括 搜狗拼音.QQ拼音.Windows 10 微软拼音 在内的超过 20 种的输入法工具和词库.该程序支持 批量转换(一次拖拽多个词库文件,或者按住 ...

  8. 30_ElasticSearch IK分词器配置文件 以及自定义词库

    ElasticSearch IK分词器配置文件 以及自定义词库 更多干货 分布式实战(干货) spring cloud 实战(干货) mybatis 实战(干货) spring boot 实战(干货) ...

  9. 最新最全的stardict词库文件.

    各位同学中,使用有道桌面词典的一定不少吧, 是不是觉得自己的词典查的东西不够专业,不够详细? 从下面的词库中添加适合的你... 享受吧.. Stardict 中文词库文件 朗道英汉字典5.0 4354 ...

最新文章

  1. Delphi_01_控制台版HelloWorld
  2. 使用 cert-manager 签发免费证书
  3. Mysql,ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
  4. 【强化学习】Policy Gradients代码注释版本
  5. 一、mongodb数据库系列——介绍和安装 简单使用 增删改查
  6. 【实时+排重】摆脱渠道统计刷量作弊行为
  7. [Note]Linux查看ASCII字符表
  8. 订单金额等字段设置decimal时,要禁止为负数
  9. CentOS和AIX查看系统序列号
  10. 树莓派配置文档config.txt说明
  11. 三星note10 android q,【极光ROM】-【三星NOTE10/NOTE10+/5G N97XX-855 国行/港行/美版】-【V10.0 Android-Q-TK1】...
  12. broadcom linux网卡驱动下载,Broadcom Bcm57xx芯片网卡驱动Linux下安装方法
  13. ISO27000系列标准
  14. 线阵相机、镜头及光源的选型
  15. cound(count函数)
  16. 《上帝给我一个任务,叫我牵一只蜗牛去散步》
  17. Java混元功法_[转载]太乙混元功简介
  18. 霍普金斯计算机专业研究生如何,约翰霍普金斯大学计算机科学研究生项目详情!_托普仕留学...
  19. 使用PRSice进行多基因风险评分分析
  20. 优秀领导者必须具备的4大特质

热门文章

  1. 计算机及数控编程仿真软件exsl-win7,数控铣编程与仿真实验指导书
  2. android ps2模拟器下载地址,呆萌PS2模拟器app下载
  3. GridView中DataSourceID和DataSource替换
  4. 巧用利器cmder替代Win的cmd!实现高效便捷命令输入
  5. 图文并茂raid技术详解(raid大全)
  6. TCPMP中的Splitter机制
  7. TCPMP的ARM编译器问题
  8. 在WPS使用NoteExpress完成论文的思路
  9. ZKFinger Live20R 版对接java - B/S(网络版)
  10. ubuntu下依靠guvcview使用摄像头