2012-11-14 117 views
5

我在C#.NET中編寫了一個全局鍵盤鉤子程序,就像一個鍵盤記錄程序,它將結果寫入文件。但是我使用了另一個程序,它在同一臺計算機中支持越南語類型的語言 - 它也使用全局鉤子來將設置的鍵盤修復爲越南語字符 - 它影響到我的程序!另一個全局鉤子影響到我的全局鉤子

例如:當我鍵入以下內容:「xin chao2,to6i la2 mot65 nguoi72 Viet65 Nam」沒有我的程序,它會在我輸入的每個字符後再次修復:xinchào,tôilàmộtngườiViệtNam。

但是當我使用我的全局鉤子,我得到的結果在文件中:

xin chao2[Back] 
[Back] 
[Packet] 
[Packet] 
[Escape] 
toi6[Back] 
[Back] 
[Packet] 
[Packet] 
[Escape] 
la2[Back] 
[Packet] 
[Escape] 
nguoi7[Back] 
[Back] 
[Back] 
[Packet] 
[Packet] 
[Packet] 
[Escape] 
2[Back] 
[Back] 
[Packet] 
[Packet] 
[Escape] 
Viet6[Back] 
[Back] 
[Packet] 
[Packet] 
[Escape] 
5[Back] 
[Back] 
[Packet] 
[Packet] 
[Escape] 
Nam 

那麼,如何解決這個錯誤,排除越南計劃支持型的效果,而不會刪除或禁用它,或者接受效果從它,但結果文件看起來像沒有我的程序時鍵入?

對不起,如果您對我的英語有任何不舒服!

+0

我期待着回答這個問題!好的問題+1 – FrostyFire

+0

那麼,你會看到這個其他程序生成擊鍵來將重音放在字母上。你的鍵盤記錄器也記錄下來。當然不容易解決。 –

回答

0

假設我正確理解你的問題,你正在嘗試創建另一個鉤子,它們在修復使用越南字符後也會掛鉤這些字符?這有點冒險的解決方案,但是你可以嘗試打開在調試器中創建鉤子的越南程序,找到正在執行鉤子的函數,並鉤住該函數的返回值。

退房窗口走彎路 http://research.microsoft.com/en-us/projects/detours/

,如果你正在做的.NET有容易鉤 http://easyhook.codeplex.com/

這裏是在C++創建掛鉤的教程和繞路 http://gamerztools.net/foros/showthread.php?933-C-Tutorial-Hooking-Functions-using-Detours

希望這應指出你在正確的方向!