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,放到发布后的目录中。

程序运行后,点击按钮可打开软键盘。

相关推荐
leo__52011 小时前
C# 虚拟键盘(软键盘)实现
单片机·c#·计算机外设
周杰伦fans13 小时前
AutoCAD C# 二次开发:如何精确监听工作空间切换事件
前端·c#
用户37215742613513 小时前
如何使用 C# 自动调整 Excel 行高和列宽
c#
AI导出鸭PC端13 小时前
智谱清言怎么生成word文档?AI导出鸭终结乱码烦恼
人工智能·ai·c#·word·豆包·ai导出鸭
xiaoshuaishuai815 小时前
C# AvaloniaUI 中旋转
开发语言·c#
weixin_4280053015 小时前
C#调用 AI学习从0开始-第2阶段(Function Calling+工具调用智能体)-第9天实战-实现计算器工具
开发语言·学习·c#·functioncalling·ai实现计算器工具
guygg8815 小时前
基于C# + Halcon的通用ROI绘制工具
stm32·单片机·c#
双河子思16 小时前
《代码整洁之道》——读书笔记(持续更新)
开发语言·c++·c#
诙_16 小时前
unity——C#
unity·c#·游戏引擎
cici1587417 小时前
C# LAS 点云读取与处理工具
stm32·单片机·c#