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)设置默认输入法为输出语言(选中输入法)

设置输入法后,显示效果

三、打开手写板功能

点击按钮,打开搜狗输入法程序

 

 四、打开输入法工具栏

这种状况是输入法的工具栏找不到,能够经过这个打开

点击按钮后,打开输入法工具栏

相关文章
相关标签/搜索