雖然關(guān)于
List的問題,
窗口句柄等問題一直搞不定,但還是先把手里的上傳吧,這些問題就當(dāng)作已知Bug存在了,希望影響不大(心虛~)。新版本
這里下載。
此次更新涉及較多,主要分散在下面幾點:
1. 支持
直接HTML數(shù)據(jù)的保存和讀?。贿@樣如果沒有Vicon和Langdao兩種詞典,一樣可以使用了,只是體驗上會少些功能;
2. 針對上面的功能,相應(yīng)地增加了兩個配置項;
3. 增加了生詞發(fā)音;現(xiàn)在可以聽了(這個我喜歡~);
4. 結(jié)果界面中添加了和生詞列表一樣的右鍵菜單;菜單使用說明見
這里;
5. 支持模糊定位Lingoes窗口,希望能減少Hook失敗率;
這幾天的主要工作都在修修補(bǔ)補(bǔ)HTML數(shù)據(jù)的直接存取上,消耗了大量時間;而語音和菜單部分加起來不到兩小時,比想象的簡單需多。不多扯了,上圖解說~
先看看新增的配置:

藍(lán)色框內(nèi)的兩項為新增項,是用于對直接HTML數(shù)據(jù)存取做配置的,兩個配置項是互斥的;
1. 第一項(Ignore Dictionary Analysis Error)指定當(dāng)HTML數(shù)據(jù)到達(dá)時,先嘗試使用詞典解析,如果解析失敗,比如沒有能支持的詞典數(shù)據(jù),則將HTML數(shù)據(jù)直接保存下來;
2. 第二項(Close Dictionary Analysis Process)指定當(dāng)HTML數(shù)據(jù)到達(dá)是,不進(jìn)行詞典解析過程,直接將HTML數(shù)據(jù)保存下來;
選中任何一項,都會自動選中'HTML Data Process' 中的兩個配置項(Storage,Loading),理由很簡單,如果不選中這兩個,HTML數(shù)據(jù)是沒法顯示的。。。兩個配置項的區(qū)別在于是否調(diào)用詞典解析過程,對于完全不使用Vicon或Langdao的人來說,不調(diào)用詞典解析,可以稍微稍微提高點性能。。。兩個配置項默認(rèn)是關(guān)閉的,因為不經(jīng)過解析的數(shù)據(jù),只能在HTML界面中查看,且可能會有大量無用數(shù)據(jù),體驗不好,如下圖所示。

直接HTML數(shù)據(jù)存取很好,很強(qiáng)大!由于抓取跟解析無關(guān),跟直接截屏差不多,因此強(qiáng)大到對付中文或者其它語言文字一樣有效,這個是我開始沒有想到的。。。
結(jié)果界面中的右鍵ContextMenu菜單,功能和生詞列表中的右鍵菜單功能一樣;

如上圖,看見么,支持Speak了!雖然很簡單,但至少能發(fā)音了,我喜歡。。。(打算給自己做個版本,支持Hotkey發(fā)音,或者自動發(fā)音,嘿嘿。。。)
前面說到的bug會在配置了直接HTML數(shù)據(jù)讀取情況下,使用Hotkey時出現(xiàn),如下圖:

輸入的是‘bugxxx’,查詢到的是‘bugs’,期望抓取的生詞應(yīng)該也是‘bugs’,但由于沒法訪問到Lingoes的單詞列表數(shù)據(jù),只能將就先取輸入框的錯誤數(shù)據(jù)了。這個問題以后看吧,我現(xiàn)在完全沒頭緒如何修正。
關(guān)于窗口句柄的模糊查詢,看看下面代碼就明白了~
原來的代碼:
HWND hwnd = ::FindWindow(_T("Afx:400000:2400b:10011:0:0"), NULL);
修改后的代碼:
wchar_t buf[64];
size_t s = 0;
HWND hwnd = ::FindWindowEx(NULL, NULL, NULL, NULL);
while(hwnd != NULL)

{
// wcsnset(buf, 0, 64);
::GetClassName(hwnd, buf, 64);
s = wcslen(buf);
if(s > 17)

{
if(wcsncmp(buf, _T("Afx:400000:2400b:"), 17) == 0)

{
break;
}
}

hwnd = ::FindWindowEx(NULL, hwnd, NULL, NULL);
}
增加了循環(huán)查詢,性能會。。。唉,我也不想,但真的不知道為什么這個句柄的值會變化。。。
<---講故事的分割線--->
實際這篇隨筆早寫好了,但每次要提交時,總是出現(xiàn)一個不得不改的bug,比如列表bug,比如句柄變化等等,到今天,實在沒耐心了,傳上再說吧。。。
<---講心情的分割線--->
LingosHook將Open Source了。。。但無聊的xxx限制了code.google.com的訪問,害的我不得不翻墻走,這也導(dǎo)致open的進(jìn)展很慢。。。我實在想不明白,封了VOA就算了,code.google.com又咋了?閉關(guān)鎖國會導(dǎo)致閉門造車,而閉門造車會導(dǎo)致科技落后,而科技落后會被挨打的,歷史已經(jīng)多次驗證了這條理論,為什么xxx現(xiàn)在還做這樣的事情。。。