|
您的位置:首
頁>GetWord>開發者專區>常見技術問題
Q1:
GetWord支援哪些作業系統?
A: GetWord支援下列作業系統:
-
Windows 2000系列: Windows 2000
Professional, Windows 2000 Server, Windows 2000 Advanced
Server
- Windows XP系列: Windows XP Home, Windows XP
Professional
- Windows Server 2003系列
- Windows Vista系列: Windows Vista Starter,
Windows Vista Home Basic, Windows Vista Home Premium,
Windows Vista Ultimate, Windows Vista Small Business,
Windows Vista Professional, Windows Vista Enterprise
Back to top
Q2:
GetWord支援哪些軟體發展環境? 支援哪些編程語言?
A:
GetWord支持所有主流的軟體發展環境,如Visual Studio 6.0, Visual Studio 2003,
Visual Studio 2005, Delphi 7, C++ Builder等. GetWord支援所有主流的編程語言,
如C++, Visual Basic, Delphi等. 一般來講, GetWord支援所有支援ActiveX或Raw Dll調用介面的軟體發展環境和編程語言系統.
Back to top
Q3:
GetWord支援哪些語言編碼格式?
A:
GetWord支援各種常見語言編碼格式, 如英文/簡體中文/繁體中文/俄語/法語/日語/德語/西班牙語等.
Back to top
Q4:
GetWord支持Unicode嗎?
A:
是的, GetWord支持Unicode. 它可以從採用Unicode編碼格式的軟體系統中正確抓取文字.
此外,GetWord的所有API介面函數也都與Unicode相容.
Back to top
Q5:
GetWord支援抓取一個給定點(x,y)處的文字嗎? 我想抓取滑鼠(cursor)或游標(caret)所在處的文字,如何獲取其位置?
A: GetWord支援抓取一個給定點(x,y)處的文字,您可以利用GetWord的API函數GetString來獲取該處文字.
您可以利用Windows的API函數GetCursorPos和GetCaretPos來獲取滑鼠(cursor)或游標(caret)所在位置.
Back to top
Q6:
GetWord支持句子捕捉嗎? GetWord是否支援同時抓取多行文字?
A: 是的,GetWord支持句子捕捉.
如果句子在一行上,可以用GetString完成抓取,如果句子橫跨多行,可以用GetRectString或GetRectStringPairs抓取。此外,GetRectString和GetRectStringPairs也可以抓取到一個給定區域內的一行或多行文字.
Back to top
Q7:
我發現GetWord的GetRectString函數使用了一個內置的文本格式化輸出器,我想自己控制一個給定區域內的文字輸出,GetWord支援嗎?
A:
這種情況下,您可以使用GetWord的API函數GetRectStringPairs來獲取該區域內的所有子串以及每個字串對應的矩形位置,然後根據每個子串的矩形位置,自己來控制輸出文本的編排格式.
Back to top
Q8:
GetWord和主流的軟體系統相容嗎?
A:
GetWord和絕大多數的主流軟體系統相容. 它可以從各種常見的Windows控制項中抓取文字,如Dialog,
Toolbar, Menu, EditBox, ComboBox, ListBox, TreeCtrl, 等.
Back to top
Q9:
GetWord是否可以捕捉對話方塊、表單及控制項中的隱藏文字?
A:
GetWord不支援捕捉對話方塊、表單及控制項中的隱藏文字。GetWord僅捕捉螢幕上可見的文字.
如果要捕捉隱藏的文字,比如想捕捉帶有很長捲軸表單中的不可見內容,需要先給該表單發送滾動消息,待捕捉的內容滾動到螢幕可見後,就可以用GetWord進行文字捕捉了.
Back to top
Q10:
GetWord是否可以捕捉用Java編寫的軟體介面上的文字?
A:
GetWord支援部分Java應用程式的抓詞. 它可以正確捕捉採用SWT或AWT技術的Java應用程式的文字,
不能捕捉採用Swing技術的Java應用程式的文字. 簡而言之,
GetWord僅支援哪些採用Windows本地文本輸出函數輸出文本的Java應用程式的抓詞.
Back to top
Q11:
GetWord支持熱鍵捕捉嗎? 我想設置Alt+滑鼠左鍵作為捕捉熱鍵,GetWord支持嗎?
A:
GetWord支持熱鍵捕捉.
您可以利用GetWord的API函數EnableHotkeyCapture設置任何鍵(keys)和滑鼠按鈕(mouse
buttons)的組合作為捕捉熱鍵.
Back to top
Q12:
GetWord捕捉某些頁面時顯示的是亂碼,比如??等。這是什麼原因?
A:
GetWord以Unicode格式返回捕捉到的字串.
如果捕捉到的文字都顯示為??,絕大多數情況下,都是因為沒有正確啟用Unicode導致的.
多數流行的開發環境缺省都是以ANSI格式編譯程序,這些程式不能正確顯示本地內碼表以外的其他文字。用Unicode重新編譯您的程式後,就可以正常顯示相應的文字了.
各個開發環境下如何正確啟用Unicode開關,編譯生成Unicode版本.
Visual C++ 6.0 (VC6)
用Visual C++ 6.0集成開發環境打開專案檔 (*.dsw),
單擊"Project"->"Settings" 打開"Project Settings"對話方塊, 單擊"C/C++"標籤.
在"Preprocessor definitions"編輯框中,刪除_MBCS,然後在編輯框中填入_UNICODE
(Pic.1).
單擊"Link"標籤, 在"Entry-point symbol"編輯框中,輸入wWinMainCRTStartup
(Pic.2), 然後單擊"OK"按鈕關閉對話方塊, 重新編譯專案.
 |
|
 |
|
Pic.1 |
|
Pic.2 |
請參考SDK中的Samples\ActiveX_Demo\VC6Demo以獲得進一步的資訊.
Visual Basic 6.0 (VB6)
VB6的缺省控制項集(如編輯框(textbox), 標籤(label),
按鈕(button)等)是基於ANSI的,不支援Unicode. 為了在VB6中支持Unicode,
您需要換用一組支援Unicode的控制項集. Microsoft給出了一個解決方案:
Q193540: How To Read and Display UNICODE String on Visual Basic
Form
建議您採用VB2005, VB2005可以完全相容Unicode.
Borland C++ Builder 6.0
(BCB6)
BCB6的缺省控制項集(如編輯框(textbox), 標籤(label),
按鈕(button)等)是基於ANSI的,不支援Unicode. 為了在BCB6中支持Unicode,
您需要換用一組支援Unicode的控制項集, 比如TntUnicodeControls. 請參考SDK中的Samples\ActiveX_Demo\BCB6Demo_Unicode以獲得進一步的資訊.
Borland Delphi 7.0
(Delphi7)
Delphi7的缺省控制項集(如編輯框(textbox), 標籤(label),
按鈕(button)等)是基於ANSI的,不支援Unicode. 為了在Delphi7中支持Unicode,
您需要換用一組支援Unicode的控制項集, 比如TntUnicodeControls. 請參考SDK中的Samples\ActiveX_Demo\Delphi7Demo_Unicode以獲得進一步的資訊.
Visual C# 2005 (C#2005)
C# 2005可以完全相容Unicode, 無需做任何特別設置.
Visual Basic 2005 (VB2005)
VB 2005可以完全相容Unicode, 無需做任何特別設置.
Visual C++ 2005 (VC2005)
用VC2005集成開發環境打開專案檔(*.sln). 在"Solution Explorer"視圖中, 用右鍵單擊項目,
從彈出的功能表中選擇"Properties", 在"Property Pages"設置對話方塊的左側選擇"Configuration
Properties"->"General", 在"Property Pages"設置對話方塊右側的"Project
Defaults"類別中,設置"Character Set"為"Use Unicode Character Set"
(Pic.3), 單擊"OK"按鈕關閉對話方塊,然後重新編譯專案.

Pic.3
Back to top
Q13:
GetWord是否支援同時對螢幕上的多個點進行文字捕捉?
A: 是的,
GetWord支援同時對螢幕上的多個點進行捕捉.
在這種情況下,您需要做一個迴圈,每次迴圈時取出一個要捕捉的點,然後調用GetWord的API函數GetString、GetRectString或GetRectStringPairs完成捕捉.
Back to top
Q14:
我想訂購GetWord的源代碼. 請問GetWord的源代碼是用什麼語言編寫的?代碼結構和注釋都很好嗎?
A:
GetWord的所有庫代碼均是由C++語言編寫的。可以利用Visual Studio 2003/2005對其進行編譯.
整個源代碼具有良好的結構和豐富的注釋資訊.
Back to top
Q15:
GetWord的功能能夠滿足我們產品的大部分需求,但我們還需要基於GetWord做一些定制工作。你們是否提供這樣的定制服務?
收費如何?
A:
我們提供基於GetWord的定制服務.
如果定制的內容比較簡單,定制是免費的。如果定制的內容比較複雜,我們需要收取一定的定制費用,具體定制費用的多少需要根據定制內容雙方協商議定.
Back to top
Q16:
是否有辦法獲得滑鼠所在處的完整單詞?
比如,對於單詞Google,不管滑鼠指標放在其中哪個字元上,我都想返回單詞Google。有辦法辦到嗎?
A: 在單點捕捉模式下,
您只需要指定需要捕捉的點(螢幕坐標系), GetWord每次捕捉時返回兩項內容: 1. 給定捕捉點處所在行的完整字串 2.
給定點所在處字元在整個字串中的索引位置(zero-based)。比如,您想捕捉滑鼠所在處的文字。假設螢幕上顯示的文字是:"Many
people use Google to search things. Google is a great searching engine."
如果您把滑鼠指標放在第二個Google的第一個'o'字元上, GetWord將返回: 1. 整個字串: Many people use
Google to search things. Google is a great searching engine. 2.
滑鼠所在處字元在整個字串中的索引位置: 42
在我們的實例程式(您可以在這裏找到示例程式,http://www.textcapture.com),
上述兩項內容分別為標記為'All Text' 和'Cursor Pos' . 滑鼠所在出文字是根據上述兩項內容計算獲得的.
一般來講,如果您想返回給定點處的完整單詞,比如,對於Google這個單詞,如果希望不論滑鼠指標放在其中哪個字元上,都返回完整單詞Google,一般需要一個字典,根據字典中的內容決定返回什麼單詞。對於某些簡單的情形,可以不用字典而利用正則運算式來確定應該返回什麼單詞.
為了方便您的使用, GetWord SDK中提供了一個基於正則運算式的例子, 該例子位於GetWord
SDK安裝目錄中的Sample\PlugIn_Demo\Token目錄下
Back to top
Q17:
我用Visual C++
6.0生成Unicode版本的程式,鏈結器(linker)報告了如下錯誤:"libcmtd.lib(wincrt0.obj) :
error LNK2001: unresolved external symbol _WinMain@16".
這是什麼原因導致的?應該如何修復這個錯誤?
A:
您需要設置程式的入口點(Entry-point)函數. 請按以下步驟設置: (請參閱
Q12
以獲得進一步的資訊)
1. 打開專案檔 (*.dsw)
2. 單擊"Project"->"Settings..." 打開"Project Settings"對話方塊
3. 單擊"Link"標籤,在"Category"下拉式列示方塊下選擇"Output"
4. 在"Entry-point symbol"編輯框中輸入wWinMainCRTStartup
5. 單擊"OK"關閉對話方塊,然後重新編譯專案既可
Back to top
Q18:
我以前安裝過GetWord文本抓取引擎,當我更新到最新版本後,重新編譯時編譯器提示某些函數不可用,這是怎麼回事?
A:
這是因為GetWord最新版本的庫程式添加了一些新的API函數,
您重新添加對最新版本取詞引擎庫的引用(reference)既可.
Back to top
Q19:
我的GetWord版本不能進行PDF取詞,這是怎麼回事?
A:
GetWord支持各種版本的Adobe Acrobat Standard, Adobe Acrobat
Professional, Adobe Acrobat Reader(7.0及以上)的螢幕取詞.
如果不能抓取PDF頁面上的文字,請檢查以下可能的原因:
1. 檢查使用的是否是GetWord v2.0及以上的版本, GetWord v1.x不支援PDF螢幕取詞;
2. 檢查是否已正確安裝了PDF螢幕取詞插件. 安裝以前,請先關閉Adobe Acrobat/Acrobat Reader,
然後運行GetWord的工具程式install_plugin.exe安裝PDF螢幕取詞插件;
3. 如果您當前使用的是Acrobat Professional, 它附帶了一個Autotray.exe程式,
請檢查是否該程式正在運行. 如果正在運行, 從進程管理器中殺掉此進程, 然後重新運行install_plugin.exe工具程式安裝PDF螢幕取詞插件;
4. 您正在抓取的文字是圖片格式. GetWord不能抓取圖片中的文字;
5. 您當前登錄到作業系統中的是一個受限用戶(limited user account), 沒有寫入許可權, 不能夠往Adobe
Acrobat/Acrobat Reader的插件目錄中安裝插件. 請用管理員帳戶(Administrator
account)登錄, 然後重新運行install_plugin.exe工具程式安裝PDF螢幕取詞插件.
在註冊控制項和安裝PDF螢幕取詞插件時,您需要以管理員身份運行. 正確註冊好控制項並安裝好PDF螢幕取詞插件後,
可以以一般用戶身份運行.
Back to top
Q20:
我用GetWord抓取QQ的聊天記錄,為什麼抓取不了?
A:
部分殺毒軟體和防火牆軟體,存在誤殺,會誤把一些正常程式當作病毒或惡意程式。可能您的殺毒軟體和防火牆軟體誤把GetWord判定為此類軟體,從而造成GetWord不能正常抓詞。請檢查GetWord是否在您殺毒軟體和防火牆軟體的禁止列表中,如果在,解除禁止,並把GetWord添加到允許列表中即可。
此外,部分軟體和防火牆軟體,具有對某些特定程式的監控功能。比如,瑞星(一家中國的殺毒軟體廠商)提供了一個叫“帳號保險櫃”的功能,可以監視常用的股票軟體、聊天軟體和網遊軟體。螢幕抓詞必須要向被抓詞的程式中注入代碼,才能取到相應程式裏的文本。如果開啟了此類防護機制,將導致GetWord不能正常抓詞。關閉相應的防護機制後,GetWord就可以正常取詞了。以瑞星殺毒軟體為例,具體操作步驟如下:1.
啟動瑞星的“帳號保險櫃”,打開“帳號保險櫃”設置;2.
在左側的軟體列表中選擇“聊天類”,然後在右側面板中,去除“QQ”核取方塊的選擇標誌,然後單擊"應用"(請參考Pic.4)。這樣就可以利用GetWord對QQ正常取詞了。
 |
|
Pic.4 |
Back to top
|