c#怎么把电脑里面安装的输入法查出来放到listbox里面并选中一个设为默认输入法 100

privatevoidfrmsrf_Load(objectsender,EventArgse){InputLanguageCollectionlangs=InputLan... private void frmsrf_Load(object sender, EventArgs e)
{
InputLanguageCollection langs = InputLanguage.InstalledInputLanguages;
//循环遍历所有输入法
foreach (InputLanguage lang in langs)
{
//判断listbox是否存在重复值
if (!this.listBox1.Items.Contains(lang.LayoutName))
{
//添加到listbox里面
this.listBox1.Items.Add(lang.LayoutName);
}
}
}

private void button1_Click(object sender, EventArgs e)
{
InputLanguageCollection langs = InputLanguage.InstalledInputLanguages;
//判断listbox选中集合必须大于0
if (this.listBox1.SelectedItems.Count > 0)
{
//选中listbox选中的值
string selectedText = this.listBox1.SelectedItem.ToString();
//遍历输入法
foreach (InputLanguage lang in langs)
{
if (lang.LayoutName == selectedText)
{
//设置系统默认选中输入法
InputLanguage.CurrentInputLanguage = lang;
this.Close();
}
}
}
else
{
MessageBox.Show("未选中输入法,请选择!");
}

这个不行,只能查出微软自己的,搜狗什么的都查不出来
展开
 我来答
猴子技术宅
2019-10-19 · 我不入地狱,谁入地狱
猴子技术宅
采纳数:87 获赞数:578

向TA提问 私信TA
展开全部

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 > 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;
}
}
}
}

3、界面演示

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

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

设置输入法后,显示效果

3、打开手写板功能

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

 

 4、打开输入法工具栏

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

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式