C# Winform 中如何獲取本機安裝輸入法,並設置爲默認輸出語言,如何打開搜狗輸入法和手寫板

原文: C# Winform 中如何獲取本機安裝輸入法,並設置爲默認輸出語言,如何打開搜狗輸入法和手寫板

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)設置默認輸入法爲輸出語言(選中輸入法)

設置輸入法後,顯示效果

三、打開手寫板功能

點擊按鈕,打開搜狗輸入法程序

 

 四、打開輸入法工具欄

這種狀況是輸入法的工具欄找不到,能夠經過這個打開

點擊按鈕後,打開輸入法工具欄

相關文章
相關標籤/搜索