您的当前位置:首页>全部文章>文章详情

【C#】C#调用win10系统自带软键盘的方法

CrazyPanda发表于:2024-01-29 23:45:58浏览:356次TAG:

上次做了个笔记是关于调用windows系统自带的触摸键盘的方法:C#调用Windows系统自带触摸键盘的方法_c# 虚拟键盘-CSDN博客

除了调用触摸键盘,我们也可以通过调用win10的自带软键盘作为输入途径。

方法很简单。

1、添加using System.Diagnostics引用。

2、创建进程Process Winvirkey = Process.Start("osk.exe");

3、打开键盘:Winvirkey = Process.Start("osk.exe");

4、关闭键盘:Winvirkey.Kill();

具体实现如下:

using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using UnityEngine;
 
public class Win10key : MonoBehaviour
{
    Process Winvirkey;
    // Start is called before the first frame update
    void Start()
    {
        Winvirkey = Process.Start("osk.exe");
        Winvirkey.Kill();
    }
 
    // Update is called once per frame
    void Update()
    {
        if(Input.GetKeyDown(KeyCode.F1))
        {
            ShowKey();
        }
        else if(Input.GetKeyDown(KeyCode.F2))
        {
            HideKey();
        }
    }
 
    //打开虚拟键盘
    void ShowKey()
    {
        //此处需检测Winvirkey进程是否已关闭,否则打开状态再执行会报错
        if (Winvirkey.HasExited)
        {
            Winvirkey = Process.Start("osk.exe");
        }
    }
 
    //关闭虚拟键盘
    void HideKey()
    {
        //此处需检测Winvirkey进程是否已打开,否则关闭状态再执行会报错
        if (!Winvirkey.HasExited)
        {
            Winvirkey.Kill();
        }
    }
}

效果如下:C#调用软键盘_哔哩哔哩_bilibili


原文链接

猜你喜欢

【C#】C# Winform 多个程序之间的通信(非Scoket)
效果功能:打开窗体自动连接主程序,并自动添加到列表,可以向子程序群发消息可以向单个程序单独发送消息在退出程序后,添加的程序列表会自动移除一、概述参考:C# Winfrom程序之间通讯_c# sendmessege copydatastruct 返回多个值_熊思宇的博客-CSDN博客在之前我写过 winform 程序与程序之间的通信,但是这个版本有个问题,那就是只能由两个程序进行通信,同时打开多个程序的话,接收方收到的数据就会一模一样,这次发表这个教程,也就是要解决这个问题。归根结底,还是&nbs
发表于:2024-02-03 浏览:295 TAG:
【C#】Winform NanUI 0.88版本 用官方源码搭建原生态开发环境
目录一、需求二、搭建原生开发环境1.导入源码2.解决源码报错错误1错误23.导入其他项目4.官方Demo运行效果三、创建自己的NanUI项目1.新建项目2.导入NanUI.Runtime扩展包3.添加NanUI程序集的引用4.MainIndex主界面相关代码5.Program程序入口相关代码6.读取本地前端文件的处理四、测试项目效果五、结束一、需求NanUI 插件确实很方便,但想改其中的需求怎么办,下面就来自己搭建NanUI 原生开发环境,在此很感谢作者免费的开源。官方源码地址:GitHub -
发表于:2024-02-08 浏览:483 TAG:
【C#】C# Winfrom 右键菜单
目录一、概述二、新建 winform 项目三、给图片控件添加右键菜单四、给菜单添加点击事件五、测试结束一、概述ContextMenuStrip 是 Windows 窗体应用程序中的一个控件,它提供了一个弹出菜单,用于在用户右键单击控件或其他界面元素时显示上下文相关的选项。它通常用于在图形用户界面中提供快捷操作和功能。ContextMenuStrip 控件可以通过在 Visual Studio 的设计器中拖放方式添加到窗体上,或者通过编程方式创建和配置。它可以与其他控件(如按钮、文本框等
发表于:2024-02-02 浏览:354 TAG:
【C#】C#二分查找(迭代与递归)
        二分搜索被定义为一种在排序数组中使用的搜索算法,通过重复将搜索间隔一分为二。二分查找的思想是利用数组已排序的信息,将时间复杂度降低到O(log N)。二分查找算法示例 何时在数据结构中应用二分查找的条件: 应用二分查找算法:         1、数据结构必须是有序的。         2、访问数据结构的任何元素都
发表于:2024-03-11 浏览:307 TAG:
【C#】C# Winfrom 常用功能整合-2
目录Winfrom 启动一个外部exe文件,并传入参数Winform ListBox用法HTTP下载文件(推荐)Winform HTTP下载并显示进度Winform HTTP下载文件Winform 跨线程访问UI组件Winform 改变文字的颜色和大小Winfrom 启动一个外部exe文件,并传入参数在我们常用的一些软件中,经常有些软件,双击之后根本打不开,这是因为启动时做了限制,我们需要传入一些参数才能打开,在工作中,这个需求也可以用在软件的自动更新上,
发表于:2024-02-02 浏览:332 TAG:
【C#】Winform NanUI 0.77版本 读取本地资源(扩展功能)
一、前言在NanUI官方的文档中,原本是有一个NanUI.FileResourceHandler的扩展包的,但现在官方已经无法下载了,现在只有0.88版本中有一个NanUI.LocalFileResource程序包,而0.77版本只剩下了一个读取嵌入式资源的程序包。关于NanUI:NanUI | .Net/.Net Core界面组件NanUI 0.7版正式发布 - 林选臣 - 博客园在扩展功能之前,请参考[资源处理器]-04 自定义资源处理器 - 知乎 ,我参考这个帖子进行扩展的,也不
发表于:2024-02-08 浏览:326 TAG:
【C#】从零开始用C#写一个桌面应用程序(一)基础操作
准备winform应用程序编写桌面应用客户端的技术。xaml一种标记语言。winform程序组成。 程序入口: form.cs和它的设计文件:  启动的过程以及涉及的文件:main函数: form1的构造函数和它的设计文件:    main-》构造form-》initializeComponent-》 拖入一个 button控件可以看到: 这时我们已经梳理启动过程。使用组件的方法 可以在
发表于:2024-01-30 浏览:486 TAG:
【C#】C#Windows桌面应用开发实践
速览必须功能一览简单下载异步下载如何解决下载文件不完整的问题使用 Downloader 进行 HTTP 多线程下载创建一个下载服务:下载非 HTTP 协议的文件注册表相关的操作(添加与删除)文件占用问题的处理防止重复启动只开一个实例,通用弹窗和提示 使用示例使用 C# 下载文件 (引用自使用 C# 下载文件的十八般武艺)常用接口示例必须功能一览注册表相关的操作(添加与删除)       RegistryKey hkm
发表于:2024-01-28 浏览:362 TAG:
【C#】C# Winform 配置文件App.config
目录一、简介二、添加引用 三、添加节点1.普通配置节点2.数据源配置节点四、管理类 ConfigHelper.cs1.获取配置节点2.更新或加入配置节点结束一、简介在C#中,配置文件很常用,ASP.NET 和 Winform 名称不同,用法一样,如下图config 文件通常用来存储一些需要修改的数据,比如用户名密码,连接数据库的IP地址等,而不是在代码中写死。有人可能会问,那我自己自定义一个配置文件也行,为什么要用它这个?区别当然有,微软自己封装的读取和写入会更简单一些,你自己封装的,
发表于:2024-01-31 浏览:374 TAG:
【C#】Winform NanUI 0.77版本 清除Cookie等本地缓存
目录需求NanUI0.88版本的缓存路径NanUI0.77版本的缓存路径试着实现功能添加扩展出现的问题解决问题结束需求清除web前端保存的一些的数据,或者清除浏览器缓存会用到。NanUI0.88版本的缓存路径在NanUI0.88版本中,只要在Program.cs启动模块中调用app.ClearCacheFile();就可以清除浏览的缓存了。0.88版本的缓存路径:"C:\\Users\\Administrator\\AppData\\Roaming\\Net Dimension Stu
发表于:2024-02-08 浏览:307 TAG: