1、問題:html
今天,我整理了一下兩個問題工具
一、如何獲取本機安裝全部輸入法,並設置爲系統輸出語言this
二、如何打開搜狗拼音輸入法工具欄和手寫板:spa
2、解決方法設計
好比:咱們要設置搜狗輸入法爲本機輸入語言,要怎麼用代碼實現呢?3d
//獲取全部安裝的輸入法 InputLanguageCollection langs = InputLanguage.InstalledInputLanguages; //循環遍歷輸入法集合 foreach (InputLanguage lang in langs) { //若是是搜狗輸入法 if (lang.LayoutName == "中文(簡體) - 搜狗拼音輸入法") { //設置系統默認選中搜狗輸入法 InputLanguage.CurrentInputLanguage = lang; } }
好比:咱們要打開搜狗輸入法工具欄和手寫板,要怎樣用程序代碼打開呢?code
//啓動手寫程序 System.Diagnostics.Process.Start(@"C:\Program Files (x86)\SogouInput\Components\HandInput\1.1.0.282\HandInput.exe"); //啓動輸入法工具 System.Diagnostics.Process.Start(@"C:\Program Files (x86)\SogouInput\8.4.0.1039\SGTool.exe");
Ps: 打開搜狗輸入法工具和手寫需先安裝搜狗輸入法,確保版本一致(將上面版本對應文件夾名稱改爲你本機的名稱就好了)orm
3、整合例子htm
一、界面設計blog
button類: btnGetInput、 btnSetInput 、btnOpenHand、 btnOpenInput
listbox類: list_showInput
Ps: 打開輸入法的手寫板和輸入法前提保證版本一致
二、總體代碼實現
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsForms { public partial class Form2 : Form { public Form2() { InitializeComponent(); } /// <summary> /// 獲取本地安裝的輸入法 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnGetInput_Click(object sender, EventArgs e) { //獲取本機安裝的全部輸入法 InputLanguageCollection langs = InputLanguage.InstalledInputLanguages; //循環遍歷全部輸入法 foreach (InputLanguage lang in langs) { //判斷listbox是否存在重複值 if (!this.list_showInput.Items.Contains(lang.LayoutName)) { //添加到listbox裏面 this.list_showInput.Items.Add(lang.LayoutName); } } } /// <summary> /// 設置選中輸入法爲系統默認輸入法 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSetInput_Click(object sender, EventArgs e) { //獲取本機安裝的全部輸入法 InputLanguageCollection langs = InputLanguage.InstalledInputLanguages; //判斷listbox選中集合必須大於0 if (this.list_showInput.SelectedItems.Count > 0) { //選中listbox選中的值 string selectedText = this.list_showInput.SelectedItem.ToString(); //遍歷輸入法 foreach (InputLanguage lang in langs) { if (lang.LayoutName == selectedText) { //設置系統默認選中輸入法 InputLanguage.CurrentInputLanguage = lang; } } } else { MessageBox.Show("未選中輸入法,請選擇!"); } } /// <summary> /// 打開搜狗輸入法的手寫板 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOpenHand_Click(object sender, EventArgs e) { try { //獲取手寫板按鈕的值 string handText = this.btnOpenHand.Text; if (handText == "打開手寫板") { //啓動手寫程序 System.Diagnostics.Process.Start(@"C:\Program Files (x86)\SogouInput\Components\HandInput\1.1.0.282\HandInput.exe"); } } catch (Exception) { MessageBox.Show("未安裝搜狗輸入法的手寫板,沒法打開!"); return; } } /// <summary> /// 打開搜狗輸入法程序 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOpenInput_Click(object sender, EventArgs e) { try { //獲取輸入法按鈕的值 string inputText = this.btnOpenInput.Text; if (inputText == "打開輸入法") { //啓動輸入法工具 System.Diagnostics.Process.Start(@"C:\Program Files (x86)\SogouInput\8.4.0.1039\SGTool.exe"); } } catch (Exception) { MessageBox.Show("未找到特定版本的搜狗輸入法,沒法打開!"); return; } } } }
三、界面演示
1)獲取本機安裝的全部輸入法
2)設置默認輸入法爲輸出語言(選中輸入法)
設置輸入法後,顯示效果
三、打開手寫板功能
點擊按鈕,打開搜狗輸入法程序
四、打開輸入法工具欄
這種狀況是輸入法的工具欄找不到,能夠經過這個打開
點擊按鈕後,打開輸入法工具欄