C#开发winform调用软键盘

基于微软提供的osk.exe(On-Screen Keyboard)实现软键盘功能。

窗体上有一个文本框和按钮,点击按钮时打开软键盘同时文本框获取焦点,接收软键盘的输入。

主要代码:

DllImport("kernel32.dll", SetLastError = true)\] private static extern bool Wow64DisableWow64FsRedirection(ref IntPtr ptr); \[DllImport("kernel32.dll", SetLastError = true)\] private static extern bool Wow64RevertWow64FsRedirection(IntPtr ptr); private void button1_Click(object sender, EventArgs e) { bool isKeyboadRunning = Process.GetProcessesByName("osk").Length \> 0; if (isKeyboadRunning) return; IntPtr ptr = IntPtr.Zero; bool redirected = Wow64DisableWow64FsRedirection(ref ptr); try { Process.Start("osk.exe"); } finally { if (redirected) { Wow64RevertWow64FsRedirection(ptr); } textBox1.Focus(); } } 程序发布后,从网上下载osk.exe和msswch.dll,放到发布后的目录中。 ![](https://i-blog.csdnimg.cn/direct/1f257006ce744a528c8245e7392ac0ee.png) 程序运行后,点击按钮可打开软键盘。 ![](https://i-blog.csdnimg.cn/direct/7bbaea2bd2984bb895c5904b2a8d2b46.png)

相关推荐
m5655bj16 小时前
通过 C# 将 RTF 文档转换为图片
开发语言·c#
MM_MS18 小时前
WinForm+C#小案例--->写一个记事本程序
开发语言·计算机视觉·c#·visual studio
浪客川20 小时前
高效日志分离器:一键筛选关键信息
开发语言·windows·c#
小熊熊知识库20 小时前
C# EF.core 介绍以及高性能使用
开发语言·c#
雨疏风骤124021 小时前
【FreeRTOS】任务、任务状态
开发语言·stm32·c#·rtos
️公子1 天前
传奇游戏集成系统
游戏·c#
玩泥巴的1 天前
强的飞起的 Roslyn 编译时代码生成,实现抽象类继承与依赖注入的自动化配置
c#·.net·代码生成·roslyn
mudtools1 天前
强的飞起的 Roslyn 编译时代码生成,实现抽象类继承与依赖注入的自动化配置
c#·.net
️公子1 天前
无人直播系统-黑客主题
人工智能·c#·visual studio
c#上位机1 天前
halcon图像去噪—中值滤波
图像处理·c#·halcon