一、问题:

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

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. Cron表达式详解和表达式的验证

    本篇不算原创,因为主要内容来自网上的博客,所以给出我参考文章的链接. 本文cron表达式详解的大部分内容参考了[cron表达式详解]和Quartz使用总结.Cron表达式 这两篇文章. cron校验的 ...

  2. liunx查询进程下的线程

    问题:一个进程下面会启动多个线程,通过top命令可以查出某个进程cpu,内存使用情况等信息,但无法知道是哪个线程. 解决方法: 1. 用jstack打印出给定的java进程ID的Java堆栈信息(js ...

  3. bzoj1055 ||P4290 [HAOI2008]玩具取名

    目录 链接 思路 代码 链接 luogu bzoj 思路 区间dp 然后\(f[i][j][k]\) 区间\([i,j]\)能否变成\(k\)字符 (字符当然得转化一下) 字符的个数不多,直接暴力\( ...

  4. Bi-shoe and Phi-shoe(欧拉函数/素筛)题解

    Bi-shoe and Phi-shoe Bamboo Pole-vault is a massively popular sport in Xzhiland. And Master Phi-shoe ...

  5. SPOJ LAS(BFS)题解

    题目:VJ 思路: BFS+回溯,但是要剪枝,看了dalao的题解,超时+WA无数发,终于过了 #include<cstdio> #include<cstring> #incl ...

  6. 51nod 1009 数字1的数量

    1009 数字1的数量   给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数.   例如:n = 12,包含了5个1.1,10,12共包含3个1,11包含2个1,总共5 ...

  7. [BZOJ1370][Baltic2003]Gang团伙 并查集+拆点

    Description 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1. 我朋友的朋友是我的朋友: 2. 我敌人的敌人是我的朋友: 所有是朋友的人组成一个团伙.告诉你关于这n个 ...

  8. 论文笔记——Deep Residual Learning for Image Recognition

    论文地址:Deep Residual Learning for Image Recognition ResNet--MSRA何凯明团队的Residual Networks,在2015年ImageNet ...

  9. mini Linux制作过程(25/01)

    Mini Linux: 启动流程: 参考:https://blog.csdn.net/gatieme/article/details/50914250 https://linux.cn/article ...

  10. BZOJ 1010: [HNOI2008]玩具装箱toy(斜率优化dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1010 题意: 思路: 容易得到朴素的递归方程:$dp(i)=min(dp(i),dp(k)+(i-k ...