如果你不願意看解決過程,答案就是:注冊熱鍵。以下廢話可以略過。
不知道大家有沒有和我一樣的煩惱。我在Delphi中編程的時候,由於需要使用Alt+Shift+Space來查看函數的聲明,但是輸入法的全角切換卻是:Shift+Space,所以很多時候,由於Alt鍵沒有及時摁下,導致輸入法切換到了全角,這個時候,輸入的代碼全都變成了全角字符,很是麻煩。
於是就想到了避免這個情況的頻繁發生。
一開始,我考慮全角這個東東,完全可以不用嘛,所以輸入法應該直接支持配置的。可惜,我高估了所有的輸入法開發商,顯然他們並沒有考慮過這麼重要的需求。我沒有看到一款輸入法支持禁止全角的。
操作系統也一樣不支持。
後來我想,切換全角輸入法,應該是操作系統中的API支持的,如果鉤住這個API是不是可以呢?還真有,輸入法針對每一個Handle的控件,都可以設置輸入法狀態,如果檢測到狀態修改,確實可以通過相關API切換回來。具體的代碼可以通過google得到。
但我對這個方案不是很滿意。
後來想到可以HOOK住Shift+Space的快捷鍵。但是在實驗的時候,突然想起其實這是系統熱鍵,可以通過重新注冊的方式,沖掉原來輸入法的注冊功能。這是一個非常簡單的方法!經過實驗確實可行。現在我已經做了一個小工具,在系統啟動的時候,自動運行起來。Delphi編程再也沒有遇到全角的問題了。