本软件是基于金山词霸组件进行Com 开发 , 所以需要你的机子上要装有金山词霸软件 ! 使用金山词霸的屏幕取词功能(XdictGrb.dll)

1、接口

1.1 GrabProxy取词代理对象

Function AdviseGrab(XDictGrabSink As IXDictGrabSink) As Long

广播一个XDictGrabSink (如果要实现取词功能,你需要自己来实现这个接口,具体的方法后面会有介绍。( Visual Basic 的示例,使用其他语言类似)) 接口,在需要取词的时候会调用 XDictGrabSink 的 QueryWord 方法,你可以在这里实现你需要的功能。

Property GrabEnabled As Boolean   是否取词的属性

Property GrabMode As XDictGrabModeEnum

设定取词的属性,XDictGrabFlagEnum 的定义后面会讲到。

Property GrabFlag As XDictGrabFlagEnum

设定取词健,比如是否要结合Ctrl 或者 Shift.

Property GrabSystemCP As Long

这个属性暂时不太清楚。

Sub GrabWord(lCursorX As Long, lCursorY As Long)

取x,y 坐标的词,估计是屏幕坐标。

Sub UnadviseGrab(lCookie As Long)

取消对XDictGrabSink 接口的广播。

Property XDictGrabPlugins As IPluginsCollection

返回一个IPluginsCollection 集合。

1.2  IPluginsCollection插件集合对象

其中实现了一个插件的框架,但是如果只是要实现屏幕取词功能,也可以暂时不使用插件功能。

1.3  IXDictGrabPlugin插件接口

1.4  IXDictGrabROT接口  名字不太明白是什么意思,用来注册和反注册插件。

1.5  IXDictGrabSink 自己要实现的接口,参见后面的例子。

Function QueryWord(WordString As String, lCursorX As Long, lCursorY As Long, SentenceString As String, lLoc As Long, lStart As Long) As Long

可以在这个方法中实现你自己要做的功能,WordString 参数应该是鼠 标所在处的单词, lCursorX 是鼠标当前 X 坐标, lCursorY 是鼠标当前 Y 坐标, SentenceString  是鼠标所在处整个句子, lLoc 是鼠标所在处的字在整个句子中的位置,下标从 0 开始。 lStart 暂时不太清楚。

2、常量定义

2.1 XDictGrabFlagEnum

Const XDictGrabDisableButton= 4

不取按钮上的文字

Const XDictGrabDisableCaption= 8

不取标题栏的文字

Const XDictGrabDisableMenu= 2

不取菜单的文字

Const XDictGrabOnlyEnglish= 1

只取英文

以上几个常量可以用与(AND) 的方式进行组合。

2.2  XDictGrabModeEnum

Const XDictGrabMouse= 1

使用鼠标取词

Const XDictGrabMouseWithCtrl= 3

使用鼠标加Ctrl 取词

Const XDictGrabMouseWithMiddleButton= 4

使用鼠标加鼠标中键进行取词

Const XDictGrabMouseWithShift= 2

使用鼠标加Shift 进行取词

2.3  Enum XDictGrabPluginPriorityEnum设定插件的优先级

Const XDictGrabPriorityChief= 4

Const XDictGrabPriorityGeneral= 1

Const XDictGrabPriorityNormal= 2

Const XDictGrabPrioritySpecial= 3

3、代码实现:

//函数功能:初始化屏幕取词 ;

bool  TGetWord::Initialize()

{

AfxOleInit();

if (TDiction->CreateDispatch (_T("XdictGrb.GrabProxy")))

{

TDiction->SetGrabEnabled (TRUE);//是否取词的属性

TDiction->SetGrabInterval(10);//指抓取时间间隔

TDiction->SetGrabMode(1);//设定取词的属性

m_dwCookie = TDiction->AdviseGrab(TmySink);//挂接事件

}

else

{

AfxMessageBox(_T("你还未安装金山词霸组件 "));

return  false;

}

return  true;

}

//程序接口如下 :

STDMETHODIMP MySink::QueryWord(BSTR WordString, long lCursorX, long lCursorY, BSTR SentenceString, long *lLoc, long *lStart)

{

m_strGetWord=SentenceString;//鼠标所在语句

SendMessage(m_hWnd,WM_GETWORD,0,0);//向接收窗体发送接收取词词组的消息

return S_OK;

}

运用金山词霸组件开发属于自己的屏幕取词模块!!相关推荐

  1. [IE9] 开发IE9上的屏幕取词功能

    "屏幕取词"是词典软件(如:金山词霸)里面一个必要功能. 在IE9中,由于使用Direct2D接口取代GDI做页面渲染,原来基于GDI接口的屏幕取词技术将无法继续正常工作. 因此, ...

  2. python屏幕取词_GetWord 3.3 屏幕取词

    1. 缘起 要搞一个作弊软件,需要把屏幕上的试题取下来. 据说针对IE的取词很难,所以也就打消了自己开发的念头,找一找好用的控件. 发现了两个可以用的,一个是金山词霸的XdictGrb.dll文件,一 ...

  3. c# 实现金山词霸一样的屏幕取词

    c# 屏幕取词想做金山词霸一样的屏幕取词 告诉你两个方法: 第一: 在金山词霸中2005中带了一个XdictGrb.dll,添加引用 然后下面是代码 using System; using Syste ...

  4. 关于金山词霸的屏幕取词1

    "金山词霸"屏幕取词技术揭密(讨论稿) (17千字) 发信人:5,555 时 间:2001-11-1 9:30:12 详细信息: "金山词霸"屏幕取词技术揭密( ...

  5. 金山词霸”屏幕取词技术揭密

    金山词霸"屏幕取词技术揭密                               "金山词霸"屏幕取词技术揭密(讨论稿)                       ...

  6. 金山词霸无法屏幕取词的解决方法

    金山词霸是个好软件啊, window server 2003sp1也是好系统, 不过他们俩在一起时就让我很郁闷了.昨天装了发现没法屏幕取词,结果让我ctrl+c, ctrl+v了一天. 今天实在受不了 ...

  7. 金山词霸”屏幕取词技术揭密(讨论稿)

    金山词霸"屏幕取词技术揭密(讨论稿) 主题 屏幕取词技术系列讲座(一) 作者 亦东 很多人对这个问题感兴趣. 原因是这项技术让人感觉很神奇,也很有商业价值. 现在词典市场金山词霸占了绝对优势 ...

  8. 解决金山词霸和有道词典不能对pdf文档屏幕取词的方法

    解决金山词霸和有道词典不能对pdf文档屏幕取词的方法 http://www.docin.com/p-14101033.html

  9. Android金山屏幕取词,金山词霸屏幕取词方法分析

    随着使用英语的人数越来越多,它逐渐成为我们日常生活中交流.阅读的语言,现在我们出去,如果不懂点英语,还真的无法快乐地和其他小伙伴愉快的玩耍.可是自己平时工作或者学习的原因,根本没有时间静下心来去学习, ...

最新文章

  1. java编辑简单文本编辑器_简单的Java纯文本编辑器
  2. Ubuntu使用远程桌面
  3. java and asp.net
  4. 不重启的情况下linux系统安装中文包生效
  5. 我是一个*** (三)
  6. 一道多线程通信实例分析
  7. 用Python统计瓦尔登湖的词频
  8. SQL Server插入geography、geometry和c_hierarchyid类型数据
  9. 全球最大域名注册商 GoDaddy 的托管账户凭证遭泄露
  10. web测试的基本流程
  11. 基于JSP的旅游网站论文
  12. 什么是QCIF? CIF?2CIF?4CIF?DCIF?
  13. 记录一次GeoTIFF文件二进制源码阅读
  14. HP-UNIX 磁带备份-----make_tape_recovery命令详解
  15. BAT文件的编写及使用
  16. 使用xlsxwriter简单的将截图插入excel表格中
  17. CEP的一个简单理解
  18. wt概述-c++ web
  19. python自动化第三天-python3
  20. 零基础转码:CS 61A自学笔记——week 1.1

热门文章

  1. VMware中CentOS7 Failed to start LSB: Bring up/down networking和RTNETLINK answers: File exists错误解决方法
  2. idea 错误提示乱提示 提示不及时
  3. 东南亚跨境智能仓储一体化的货代系统“星卓越”
  4. 护士求职简历怎么做?如何编辑护士求职简历内容?
  5. 机器人主轴-雕刻、铣削、切割加工电主轴德国Jager
  6. Java中解耦测试分析
  7. 用容积为15升和27升的两个杯子向一个水桶中注水,可以精确向一个水桶中注入多少升水呢
  8. fiddler的便利性设置
  9. 川大13秋《计算机应用基础0006》在线作业2,21年春[四川大学]《计算机应用基础0006》在线作业1(答案)...
  10. 操作系统OS - 重装Windows7卡在completing installation