全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1315
推到 Plurk!
推到 Facebook!

如何即时翻译窗口、文本上的内容?

答題得分者是:jessechan
I_Love_You
一般會員


發表:18
回覆:87
積分:21
註冊:2002-07-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-10 01:06:34 IP:218.17.xxx.xxx 未訂閱
各位大大,有个问题想请教一下,就是有一些软件,例如MAGICWIN等, 他可以即时的将BIG5编码的汉字,显示成简体字,这样就可以避免在 简体机器上看繁体字时是乱码的情况,还有一些软件可以将英文显示 的菜单即时翻译成汉语,请问他们是如何实现的呢?利用的是什么原理呢? 如果我自己想写一个这样的小程式我又应该如何做呢?如果哪位前辈曾经 写过这样的软件,可否指点一下小弟,如果有简单范例最好了,谢谢!!!
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-10 03:13:57 IP:218.164.xxx.xxx 未訂閱
您可以用 hook 的方法來達成, 請參考 M$DN, 以 hook 查詢. Jesse Chan
------
Jesse Chan
I_Love_You
一般會員


發表:18
回覆:87
積分:21
註冊:2002-07-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-10 16:53:10 IP:218.17.xxx.xxx 未訂閱
非常感谢jessechan版主的回应,谢谢! 我以前有听人说过可以利用HOOK来实现,而且我也有查过MSDN, 但是还是没有一个头绪,可否恳请您和其他大大们再详细的 指点指点,我现在有点是丈二和尚摸不著头脑,恳请大家帮帮忙,谢谢!!!
I_Love_You
一般會員


發表:18
回覆:87
積分:21
註冊:2002-07-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-10 16:53:39 IP:218.17.xxx.xxx 未訂閱
非常感谢jessechan版主的回应,谢谢! 我以前有听人说过可以利用HOOK来实现,而且我也有查过MSDN, 但是还是没有一个头绪,可否恳请您和其他大大们再详细的 指点指点,我现在有点是丈二和尚摸不著头脑,恳请大家帮帮忙,谢谢!!!
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-10 22:53:05 IP:218.164.xxx.xxx 未訂閱
引言: 非常感谢jessechan版主的回应,谢谢! 我以前有听人说过可以利用HOOK来实现,而且我也有查过MSDN, 但是还是没有一个头绪,可否恳请您和其他大大们再详细的 指点指点,我现在有点是丈二和尚摸不著头脑,恳请大家帮帮忙,谢谢!!!
用 hook 的方法寫起來要一大篇, 我先說一個簡單的方法, 就是用 WindwoFromPoint 來抓取現在鼠標所在位置視窗的 handle, 然後用 GetWindowText 來抓文字內容作必要的處理, 但是有一個重大的缺點就是只能抓有 handle 的控件, 換句話說就是繼承自 TWinControl, 不能抓 Label 的字. Hook 部份不知 RaynorPao 兄有沒有時間代打一下. 如果不行的話我大概後天才有空回答這部份, 天啊, 要解釋 hook, 以這個例子還要說明如何 maintain virtual screen, 還要寫 sample 加測試, 我才疏學淺, 真的要一段時間. Jesse Chan 發表人 - jessechan 於 2003/03/10 23:02:56
------
Jesse Chan
I_Love_You
一般會員


發表:18
回覆:87
積分:21
註冊:2002-07-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-12 12:12:40 IP:218.17.xxx.xxx 未訂閱
再次感谢jessechan 版主的回应,您说的这个方法的确有一定的局限性, 他对一般操作是可以的,但并没有完全达到我说的情况,看来只有用您 指点的HOOK来实现了。 让您费心真的是过于不去,如果您真的空闲时间,就帮帮忙吧,不光我 一个人收益,而且会有千千万万个不会这方面知识的人感激您的,在这里 先说声谢谢,辛苦您了。 也恳请知道这方面情况的大大们,给点意见或资料,小弟感激不尽,谢谢!
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-12 15:53:48 IP:203.75.xxx.xxx 未訂閱
引言: 再次感谢jessechan 版主的回应,您说的这个方法的确有一定的局限性, 他对一般操作是可以的,但并没有完全达到我说的情况,看来只有用您 指点的HOOK来实现了。 让您费心真的是过于不去,如果您真的空闲时间,就帮帮忙吧,不光我 一个人收益,而且会有千千万万个不会这方面知识的人感激您的,在这里 先说声谢谢,辛苦您了。 也恳请知道这方面情况的大大们,给点意见或资料,小弟感激不尽,谢谢!
可否給我點時間, 最近 case 很緊, 一直出差, 我大概 weekend 才有空. Jesse Chan
------
Jesse Chan
I_Love_You
一般會員


發表:18
回覆:87
積分:21
註冊:2002-07-24

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-12 16:12:29 IP:218.17.xxx.xxx 未訂閱
让jessechan版主费心了,谢谢!!! 下周等您的好消息(不要忙坏身体喔)。
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-17 01:59:05 IP:61.228.xxx.xxx 未訂閱
引言: 让jessechan版主费心了,谢谢!!! 下周等您的好消息(不要忙坏身体喔)。
不好意思, 這兩天忙著帶小孩, 還是沒空回覆, 請先參考這幾篇文章, 我想可以使你對 hook 的觀念有一個清楚的了解, http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19936 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26453 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19406 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/setwindowshookex.asp 要做到你說的功能, 除了要知道 hook 外, 我再給個提示, 你要攔截所有有關文字輸出的訊息, 並把每個文字輸出的 Rect 記錄下來, 在你的例子中最難的要算是抓 menu 的文字了, 其次當 mouse 移動到某一座標並停留一定時間時, 就以這個座標和現存的 Rect 組做比對, 以便知道目前 mouse 指向那個文字, 這裡有一個要注意的地方就是 maintain 你的 Rect 陣列需要十分細心, 這部份很容易出錯, 要隨時把已被蓋掉部份的記憶體釋放出來, 以免一來系統資源耗盡, 我想以上已經提供了足夠的資訊讓你完成這個需求, 剩下的要你自己下功夫了, 學任何東西一定有門檻, 所以要花些心思去讀懂, 不要覺得煩, 如果你是一個軟體設計的工作者, 遇到這樣的難題應該感到高興, 東西越難表示會的人越少, 如果你把它弄懂了, 你的價值自然會顯現出來. Jesse Chan
------
Jesse Chan
I_Love_You
一般會員


發表:18
回覆:87
積分:21
註冊:2002-07-24

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-03-17 11:19:14 IP:218.17.xxx.xxx 未訂閱
非常感谢jessechan版主提供的这些资料和您提出的思路, 我会按照您说的这个思路,结合这些资料来摸索的做一下, 如果这当中遇到问题还请您不吝赐教,谢谢了,谢谢!!!
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-03-17 11:57:24 IP:203.75.xxx.xxx 未訂閱
加油吧, 這有助功力升級的. Jesse Chan
------
Jesse Chan
I_Love_You
一般會員


發表:18
回覆:87
積分:21
註冊:2002-07-24

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-03-17 18:03:04 IP:218.17.xxx.xxx 未訂閱
jessechan版主,根据您提供的资料 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19936 中,可以获得系统中的按键,我想问一下,如果我想不仅仅 获得各种按键,而且还要获得输入的文字,即我在WORD中打一篇 文章,不仅要记录我曾经都敲过哪些键,而且还想记录通过输入法 输入的汉字,例如:我敲入“好”,除了记录我曾经敲过的按键"hao", 还要记录文字“好”。如果是这种情况,我们要怎么做呢? 望指点一下,谢谢!!!!
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-03-17 22:50:03 IP:61.228.xxx.xxx 未訂閱
這個問題又和你之前的問題作法不一樣, 我一時也不知道有什麼好的方法, 如果 focus 是在 EditBox 之類的控件還好辦, 直接記錄所鍵入之 string 即可, 可是如你所說的是在 Word 之類的文書編輯器就麻煩了, 要時時比對文字的內容, 我建議你另開一個問題, 看看有沒有高手可以提供聰明的解法. (要回答你的問題, 還真不容易). Jesse Chan
------
Jesse Chan
I_Love_You
一般會員


發表:18
回覆:87
積分:21
註冊:2002-07-24

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-03-18 12:16:39 IP:218.17.xxx.xxx 未訂閱
让jessechan版主看笑话了,因为我看这个资料只能抓取到 按键的信息,这对我们来说实际意义并不大,因为我们大 部分人或公司都用的是中文操作视窗,如果可以截获汉字 信息,那该有多好啊。
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-03-18 12:52:12 IP:203.75.xxx.xxx 未訂閱
引言: 让jessechan版主看笑话了,因为我看这个资料只能抓取到 按键的信息,这对我们来说实际意义并不大,因为我们大 部分人或公司都用的是中文操作视窗,如果可以截获汉字 信息,那该有多好啊。
有關抓取按鍵的部份, 我還是建議你另開一個主題, 看看其它人有沒有更好的方法, 因為這是一個舊主題, 我擔心可能有些人會略過不看, 平白讓你失去很多得到解答的機會. Jesse Chan
------
Jesse Chan
系統時間:2024-03-29 7:17:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!