網上找來的..其實實現應該不複雜的
方案一,我們利用現成的東西,which? 金山詞霸
利用金山詞霸中的xdictgrb.dll,新增引用
然後下面是**
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.text;
using system.windows.forms;
using xdictgrb;//金山詞霸元件
namespace crazycoder.cn.test
private void form1_load(object sender, eventargs e)
//介面的實現
int ixdictgrabsink.queryword(string wordstring, int lcursorx, int lcursory, string sentencestring, ref int lloc, ref int lstart)
} }
方案二:
system32/nhw32.dll 有這麼乙個dll
nhw32.dll 主要引出兩個函式:
1. dword winapi bl_setflag32(uint nflag,
hwnd hnotifywnd,
int mou***,
int mousey)
功能:啟動或停止取詞。
引數:nflag
[輸入] 指定下列值之一:
getword_enable: 開始取詞。在重畫被取單詞區域前設定此標誌。nhw32.dll是通過
重畫單詞區域,擷取textouta, textoutw, exttextouta,
exttextoutw等windows api函式的引數來取詞的。
getword_disable: 停止取詞。
hnotifywnd
[輸入] 通知視窗控制代碼。當取到此時,向該通知視窗傳送一登記訊息:gwmsg_getwordok。
mou***
[輸入] 指定取詞點的x座標。
mousey
[輸入] 指定取詞點的y座標。
返回值:
可忽略。
2. dword winapi bl_gettext32(lpstr lpszcurword,
int nbuffersize,
lprect lpwordrect)
功能:從內部緩衝區取出單詞文字串。對英語文字,該函式最長取出一行內以空格為界的三個英文單詞串,遇空格,非英文本母及除『-』外的標點符號,則終止取詞。對漢字文字,該函式最長取出一行漢字串,遇英語字母,標點符號等非漢語字元,則終止取詞。該函式不能同時取出英語和漢語字元。
引數:lpszcurword
[輸入] 目的緩衝區指標。
nbuffersize
[輸入] 目的緩衝區大小。
lpwordrect
[輸出] 指向 rect 結構的指標。該結構定義了被取單詞所在矩形區域。
返回值:
當前游標在全部詞中的位置。
此外,winnt/2000版 nhw32.dll 還引出另兩個函式:
1. bool winapi setnhw32()
功能:win nt/2000 環境下的初始化函式。一般在程式開始時,呼叫一次。
引數: 無。
返回值:
如果成功 true ,失敗 false 。
2. bool winapi resetnhw32()
功能:win nt/2000 環境下的去初始化函式。一般在程式結束時呼叫。
引數: 無。
返回值:
如果成功 true ,失敗 false 。
c 螢幕取詞的方法(載)
a 金山詞霸元件法 在金山詞霸中2005中帶了乙個xdictgrb.dll,新增引用 為方便大家測試,本人安裝了金山詞霸2005,把其中的xdictgrb.dll 廢話不多說了,還是把原始碼放上 using system using system.collections.generic using ...
Linux 下的螢幕取詞技術
於明儉 螢幕取詞即當滑鼠在應用軟體所顯示中 英文的地方滑過,則有一小視窗 出現在離單詞附近,上面出現滑鼠下面單詞的解釋.螢幕取詞以前一直是 ms windows的 專利 但是在turbolinux上,turbolinux的研發者以其 新穎的思維,獨創的精神,完美地實現了這一技術.它是已經遙遙領先的 ...
ubuntu下安裝螢幕取詞軟體記錄
說明 ubuntu18.04 1.第乙個嘗試的是有道詞典,官方有給.deb包,不過在實際安裝的時候,會提示缺乏依賴包,於是我把開始安裝缺乏的依賴包,不過遇到問題,就是有幾個包已經被丟棄了。顯然有道官方雖然提供.deb包,但後續沒有很好的去維護。所以先放棄這個了。ps 當然也有些提供了一些即使缺少依賴...