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)

相关推荐
曹牧2 小时前
C# WinForms应用程序中展示JSON内容
c#
真鬼1233 小时前
.Net 6.0快速下载
c#
雪豹阿伟4 小时前
6.C# —— 类与对象、数据类型、方法详解
c#·上位机
伽蓝_游戏7 小时前
第二章:深入 Unity 资源导入管线 (Asset Import Pipeline)
游戏·unity·c#·游戏引擎·游戏程序
爱炸薯条的小朋友9 小时前
全局锁的性能优势,以及链路优化为何常常低于预期——基于 `MatPoolsTest` 中小图池与大图池的实战复盘
opencv·算法·c#
心蓝无敌10 小时前
攻克Avalonia Dock布局中WebView等原生控件无法停靠的难题
c#·visual studio·avalonia·avalonia dock
guygg8811 小时前
C# 监听数据库数据变化(SqlDependency 实现)
数据库·oracle·c#
爱炸薯条的小朋友14 小时前
C#由窗体原子表溢出造成的软件闪退,根本原因补充
开发语言·c#·wpf
我是苏苏15 小时前
C#基础:Winform桌面开发中自定义组件UI、属性及事件
服务器·数据库·c#
2401_8530878815 小时前
Confluence 替代落地复盘:存量数据迁移、权限重构、信创适配踩坑总结
开发语言·重构·c#