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

  本软件是基于金山词霸组件进行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;

}


 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 要实现在Java中调用金山词霸屏幕取词的功能,可以通过以下步骤进行操作: 1. 下载及安装金山词霸软件:首先需要在计算机上下载并安装金山词霸软件,确保软件正常运行。 2. 导入相关依赖库:根据金山词霸提供的API文档,确定所需的相关依赖库,并将其导入到Java项目中。 3. 创建Java代码文件:在Java项目中创建一个新的Java代码文件,用于调用金山词霸屏幕取词的功能。 4. 编写Java代码:在Java代码中,可以使用Java的外部应用程序接口(API)或者使用JNI接口来与金山词霸进行交互。根据金山词霸的API文档,按照要求调用相应的函数和方法,获取屏幕取词的结果。 5. 运行Java代码:编译并运行Java代码,确保程序可以成功调用金山词霸屏幕取词功能,并获取到预期的结果。 需要注意的是,由于金山词霸屏幕取词功能的实现方式可能会因版本不同而有所差异,因此在具体实现时应参考金山词霸的相关API文档,确保代码的准确性与稳定性。 ### 回答2: 要调用金山词霸屏幕取词的源码,可以使用Java的相关库和API。首先,需要在项目中引入金山词霸的Java库文件。然后,在代码中创建一个金山词霸的实例对象,用于控制屏幕取词的操作。 接下来,可以使用Java的事件监听机制,监听鼠标操作或者键盘操作,当用户点击鼠标或者按下特定的按键时,触发取词功能。在事件监听方法中,调用金山词霸实例对象的相关方法,如startCapture()方法,开始进行屏幕取词的操作。 经过截图和文字识别处理后,金山词霸会返回取到的词语信息。可以将词语信息显示到界面上,或者存储到文件中,根据需要进行进一步的处理和展示。 在整个过程中,需要注意异常处理以及安全性问题。确保金山词霸库文件正确引入,并且用户有正常的操作权限。此外,可能还需检查操作系统的兼容性以及金山词霸库的版本适配性。 需要注意的是,金山词霸的使用可能涉及到授权和付费问题。在使用前,建议查阅官方文档,了解相关授权和付费要求,确保合法合规地使用金山词霸屏幕取词功能。 ### 回答3: 要实现Java调用金山词霸屏幕取词源码,可以按照以下步骤进行: 1. 首先,需要在电脑上安装好Java开发环境,确保可以编译和运行Java程序。 2. 在网上搜索或直接访问金山词霸的开放平台或开发者文档,查找屏幕取词功能的API文档和示例代码。 3. 阅读API文档和示例代码,了解如何进行屏幕取词的调用和使用。 4. 在Java的开发环境中创建一个新的Java项目,命名为"ScreenTranslator"(或其他合适的名称)。 5. 在该项目中创建一个Java类,命名为"ScreenTranslatorDemo"(或其他合适的名称),这个类将用于编写屏幕取词功能的代码。 6. 在"ScreenTranslatorDemo"类中导入相关的Java类库和API库。 7. 编写代码来调用金山词霸屏幕取词的API,实现屏幕取词功能。这可能涉及到一些API调用、参数的设置和返回结果的处理。 8. 在main方法中,编写测试代码,模拟屏幕取词的场景,并调用相应的方法进行词语的翻译和输出。 9. 运行Java程序,查看屏幕取词功能是否正常工作,并检查输出结果是否符合预期。 10. 根据需要,可以对代码进行优化、封装或添加其他功能,以提高程序的可用性和用户体验。 需要注意的是,以上步骤仅供参考,具体的实现方式可能与金山词霸的API和文档有关。因此,在实际过程中,最好参考具体的文档和示例代码,以确保正确调用金山词霸屏幕取词的API。从这个角度来说,这只是一个大致的指引。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值