一、问题:

今天,我整理了一下两个问题

1、如何获取本机安装所有输入法,并设置为系统输出语言

2、如何打开搜狗拼音输入法工具栏和手写板:

二、解决方法

比如:我们要设置搜狗输入法为本机输入语言,要怎么用代码实现呢?

   //获取所有安装的输入法
InputLanguageCollection langs = InputLanguage.InstalledInputLanguages;
//循环遍历输入法集合
foreach (InputLanguage lang in langs)
{
//如果是搜狗输入法
if (lang.LayoutName == "中文(简体) - 搜狗拼音输入法")
{
//设置系统默认选中搜狗输入法
InputLanguage.CurrentInputLanguage = lang;
}
}

比如:我们要打开搜狗输入法工具栏和手写板,要怎样用程序代码打开呢?

    //启动手写程序
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: 打开搜狗输入法工具和手写需先安装搜狗输入法,确保版本一致(将上面版本对应文件夹名称改成你本机的名称就行了)

三、整合例子

1、界面设计

button类: btnGetInput、 btnSetInput 、btnOpenHand、 btnOpenInput

listbox类: list_showInput

Ps: 打开输入法的手写板和输入法前提保证版本一致

2、整体代码实现

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 > )
{
//选中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;
}
}
}
}

3、界面演示

1)获取本机安装的所有输入法

2)设置默认输入法为输出语言(选中输入法)

设置输入法后,显示效果

3、打开手写板功能

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

4、打开输入法工具栏

这种情况是输入法的工具栏找不到,可以通过这个打开

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

C# Winform 中如何获取本机安装输入法,并设置为默认输出语言,如何打开搜狗输入法和手写板的更多相关文章

  1. c#中如何获取本机用户名、MAC地址、IP地址、硬盘ID、CPU序列号、系统名称、物理内存

    我们在利用C#开发桌面程序(Winform)程序的时候, 经常需要获取一些跟系统相关的信息, 以下这些代码获取能有些用处. c#中如何获取本机用户名.MAC地址.IP地址.硬盘ID.CPU序列号.系统 ...

  2. c#中如何获取本机MAC地址、IP地址、硬盘ID、CPU序列号等系统信息

    我们在利用C#开发桌面程序(Winform)程序的时候,经常需要获取一些跟系统相关的信息,例如用户名.MAC地址.IP地址.硬盘ID.CPU序列号.系统名称.物理内存等. 首先需要引入命名空间: us ...

  3. Winform中怎样获取项目图片资源并转换为Image对象

    场景 DevExpress的TreeList怎样给树节点设置图标: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10274554 ...

  4. Winform中使用FastReport的PictureObject时通过代码设置图片源并使Image图片旋转90度

    场景 FastReport安装包下载.安装.去除使用限制以及工具箱中添加控件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  5. CentOS7.5安装python3并设置成系统默认python环境

    1.环境说明 系统版本:CentOS7. 安装的python版本: 2.编译环境准备(如果出现文件解压错误,wget命令无法下载等各种小意外,先把下面的环境安装一遍) yum install zlib ...

  6. .net中c#获取本机IP地址实例代码

    * 在使用前,一定要注意在头部加上引用: using System.Net; 代码如下: using System; using System.Collections.Generic; using S ...

  7. winform 中如何获取debug目录的路径

    项目中需要在debug启动目录创建文件夹,所以先获取debug路径: var debugPath = System.AppDomain.CurrentDomain.BaseDirectory;

  8. C# Winform中如何获取文件名与文件路径

    获取文件名方法: 用System.IO.Path.GetFileName和System.IO.Path.GetFileNameWithoutExtension(无扩展名)的方法 获取文件路径方法: / ...

  9. PHP中curl获取本机虚拟主机接口

    在PHP的curl代码中增加header可解决此问题. $header = array( "Host: 你的域名(不能包含http://)", "Accept: text ...

随机推荐

  1. Java第一次实验 20145104张家明

    Java第一次实验 实验报告 实验要求: 1.使用JDK编译.运行简单的Java程序 2.使用IDEA 编辑.编译.运行.调试Java程序 实验内容: 1.使用JDK编译.运行简单的Java程序: 2 ...

  2. Spark On YARN 分布式集群安装

    一.导读 最近开始学习大数据分析,说到大数据分析,就必须提到Hadoop与Spark.要研究大数据分析,就必须安装这两个软件,特此记录一下安装过程.Hadoop使用V2版本,Hadoop有单机.伪分布 ...

  3. 基于bootstrap的后台管理系统

    ace metro'nic 基于bootstrap的后台admin system ace [eis], 扑克牌中的A 表示 非常棒, 杰出, 顶好的... gallery: 画廊, 走廊; 在网页中常 ...

  4. Farey Sequence (素筛欧拉函数/水)题解

    The Farey Sequence Fn for any integer n with n >= 2 is the set of irreducible rational numbers a/ ...

  5. 51nod 1050 循环数组最大子段和 单调队列优化DP

    题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1050 这个呢,这个题之前 求一遍最大值  然后求一遍最小值 ...

  6. [BZOJ1776][Usaco2010 Hol]cowpol 奶牛政坛

    Description 农夫约翰的奶牛住在N (2 <= N <= 200,000)片不同的草地上,标号为1到N.恰好有N-1条单位长度的双向道路,用各种各样的方法连接这些草地.而且从每片 ...

  7. UVa 10340 子序列

    https://vjudge.net/problem/UVA-10340 题意: 输入两个字符串s和t,判断是否可以从t中删除0个或多个字符得到字符串s. 思路: 很水的题... #include&l ...

  8. WPF基础学习笔记整理 (二) XAML

    基础知识: XAML:Extensible Application Markup Language, zammel: 用于实例化.NET对象的标记语言: XMAL使用树形逻辑结构描述UI: BAML: ...

  9. 警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA

    加入 import os os.environ[' demo: import os os.environ[' import tensorflow as tf tf.enable_eager_execu ...

  10. Ubuntu 关闭防火墙

    关闭防火墙:service iptables stop