c 檢測中英輸入法 用C 控制當前輸入法

2021-10-13 14:19:12 字數 1487 閱讀 4909

如何獲取系統中所有的輸入法,以及如何根據輸入語言及其他特殊要求選擇特定的輸入法,下面我以兩段程式片斷再加以說明。

1)遍歷系統中所有的輸入法,可以用以下程式片斷:

foreach(inputlanguage lang in inputlanguage.installedinputlanguages)

this.textbox1.text += "\r\nname> "+lang.layoutname+"\r\nculture> "+lang.culture.name + "\r\n";

執行的結果類似:

name> chinese (simplified) - microsoft pinyin ime 3.0

culture> zh-cn

name> chinese (simplified) - us keyboard

culture> zh-cn

name> chinese (traditional) - new phonetic

culture> zh-tw

name> japanese input system (ms-ime2002)

culture> ja-jp

name> chinese (traditional) - us keyboard

culture> zh-tw

name> japanese

culture> ja-jp

得到系統中所有的輸入法以後,就可以通過culture和name來選擇特定的輸入語種和輸入法。

2)切換到簡體中文輸入法

if(inputlanguage.defaultinputlanguage.layoutname.indexof("keyboard")==-1 && inputlanguage.defaultinputlanguage.culture.name.equals("zh-cn"))

inputlanguage.currentinputlanguage=inputlanguage.defaultinputlanguage;

else

foreach(inputlanguage lang in inputlanguage.installedinputlanguages)

if(lang.culture.name.equals("zh-cn") && lang.layoutname.indexof("keyboard")==-1)

inputlanguage.currentinputlanguage=lang;

break;

在這段程式中,首先對系統預設的輸入法進行判斷,如果預設輸入法的culture是zh-cn,而且輸入法名字中不包含"keyboard"字樣,說明預設輸入法是一種簡體中文輸入法,而且不是"chinese (simplified) - us keyboard",這時就將系統預設的輸入法作為當前輸入法。

如果以上條件不滿足,則對系統中安裝的所有輸入法進行遍歷,將遍歷時所遇到的第一種culture為zh-cn而且輸入法名字不包含"keyboard"字樣的輸入法作為當前輸入法。

用C 控制當前輸入法

如何獲取系統中所有的輸入法,以及如何根據輸入語言及其他特殊要求選擇特定的輸入法,下面我以兩段程式片斷再加以說明。1 遍歷系統中所有的輸入法,可以用以下程式片斷 foreach inputlanguage lang in inputlanguage.installedinputlanguages 執行...

在C 運用程式裡面控制輸入法

在windows系統一般都安裝了至少三種輸入法,在輸入資料時常常會切換輸入法,雖然windows系統提供了切換快捷健,但對輸入工作還是帶來了不少麻煩。如果在應用程式中為使用者提供智慧型輸入法自動切換,那麼這樣的應用程式就顯得更加專業 更加具有競爭力。不知你可用過access,在表資料輸入時acces...

在C 運用程式裡面控制輸入法

在windows系統一般都安裝了至少三種輸入法,在輸入資料時常常會切換輸入法,雖然windows系統提供了切換快捷健,但對輸入工作還是帶來了不少麻煩。如果在應用程式中為使用者提供智慧型輸入法自動切換,那麼這樣的應用程式就顯得更加專業 更加具有競爭力。不知你可用過access,在表資料輸入時acces...