C#调用Windows(8/10)自带的虚拟键盘

简介: 原文:C#调用Windows(8/10)自带的虚拟键盘以下是调用代码: private const Int32 WM_SYSCOMMAND = 274; private const UInt32 SC_CLOSE = 61536; [DllImport("user32.
原文: C#调用Windows(8/10)自带的虚拟键盘

以下是调用代码:

private const Int32 WM_SYSCOMMAND = 274;
private const UInt32 SC_CLOSE = 61536;
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern bool PostMessage(IntPtr hWnd, int Msg, uint wParam, uint lParam);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern int RegisterWindowMessage(string lpString);
 
 //显示屏幕键盘
public static int ShowInputPanel()
{
      try
      {
            dynamic file = "C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe";
            if (!System.IO.File.Exists(file))
                return -1;
            Process.Start(file);
            //return SetUnDock(); //不知SetUnDock()是什么,所以直接注释返回1
            return 1;
      }
      catch (Exception)
      {
            return 255;
      }
}

//隐藏屏幕键盘
public static void HideInputPanel(){
      IntPtr TouchhWnd = new IntPtr(0);
      TouchhWnd = FindWindow("IPTip_Main_Window", null);
      if (TouchhWnd == IntPtr.Zero)
            return;
      PostMessage(TouchhWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
}

 

Windows系统还有一个OSK的虚拟键盘,这个是浮动的,和自动弹出的键盘有点区别,需要的话也可以直接调用。 

Process.Start(@"C:\windows\system32\osk.exe");

 

目录
相关文章
|
30天前
|
Java 数据库 C#
C#winforms实现windows窗体人脸识别
C#winforms实现windows窗体人脸识别
29 0
|
2月前
|
自然语言处理 C# Windows
C#开源免费的Windows右键菜单管理工具
C#开源免费的Windows右键菜单管理工具
|
7月前
|
人工智能 搜索推荐 C#
C#开源且免费的Windows桌面快速预览神器 - QuickLook
C#开源且免费的Windows桌面快速预览神器 - QuickLook
159 0
|
消息中间件 安全 API
C#实现操作Windows窗口句柄:SendMessage/PostMessage发送系统消息、事件和数据【窗口句柄总结之二】
SendMessage/PostMessage API 可以实现发送系统消息,这些消息可以定义为常见的鼠标或键盘事件、数据的发送等各种系统操作......
3703 1
C#实现操作Windows窗口句柄:SendMessage/PostMessage发送系统消息、事件和数据【窗口句柄总结之二】
|
4月前
|
安全 C# Windows
C#开源的一个能利用Windows通知栏背单词的软件 - ToastFish
C#开源的一个能利用Windows通知栏背单词的软件 - ToastFish
|
3月前
|
API C# C++
微软官方发布的C#开源、免费、实用的Windows工具箱
微软官方发布的C#开源、免费、实用的Windows工具箱
|
4月前
|
JavaScript Linux C#
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
65 0
|
4月前
|
C# Windows
C#安装“Windows 窗体应用(.NET Framework)”
C#安装“Windows 窗体应用(.NET Framework)”
50 0
|
5月前
|
监控 C# Windows
内网桌面监控软件中的远程控制功能实现(基于C#和Windows Forms)
近年来,随着远程办公的兴起,对内网桌面监控软件的需求逐渐增加。本文将探讨如何通过C#和Windows Forms实现内网桌面监控软件中的远程控制功能,并在结尾部分介绍监控到的数据如何自动提交到网站。
279 0
|
7月前
|
缓存 网络协议 C#
C#开源、功能强大、免费的Windows系统优化工具 - Optimizer
C#开源、功能强大、免费的Windows系统优化工具 - Optimizer