C#调用Windows(8/10)自带的虚拟键盘
注:这是电子屏(触屏)的键盘,普通PC没有这种键盘的;
以下是调用代码:
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");
C#调用Windows(8/10)自带的虚拟键盘的更多相关文章
- 【转】air调用windows自带的虚拟键盘
		原文:http://bbs.9ria.com/blog-73243-19560.html 最近在做一个东西,需要用到虚拟键盘.刚开始准备用as3开发一套,结果突然想起来windows有个自带的虚拟键盘 ... 
- 用java写的一个程序,可以调用windows系统中自带的各种工具,例如截图,便签等
		由于图片资源没有上传,所以运行后不会有图片,感兴趣的同学可以@我,我打包上传, package SmallPrograme; import java.awt.*; import java.awt.ev ... 
- Windows 10 自带那么多图标,去哪里找呢?
		无意间发现我的 D 盘根目录中大部分的文件夹都是系统专用文件夹,有自己的独特图标,偶有一两个开发用的文件夹是默认图标.于是想把它们改成独特样式,而且是 Windows 10 那些新图标样式! 这是我的 ... 
- Windows 10 自带 free 屏幕截图/录像软件 Game Bar!  不仅仅是game-游戏呦!  高清晰,高保真,perfect!不仅仅是游戏呦!
		good news! good news! good news! 重要的事情说三遍! Windows 10 自带 屏幕截图/录像软件 Game Bar! 以后再也不用第三方的 盗版软件了! 对于Wi ... 
- Unity调用Windows弹框、提示框(确认与否,中文)
		Unity调用Windows弹提示框 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ... 
- java 调用windows bat脚本
		当我们需要在java程序中调用外部程序,我们可用通过Runtime.exec()调用来完成. The class java.lang.Runtime features a static method ... 
- SQL server 存储过程  C#调用Windows CMD命令并返回输出结果  Mysql删除重复数据保留最小的id   C# 取字符串中间文本 取字符串左边 取字符串右边  C# JSON格式数据高级用法
		create proc insertLog@Title nvarchar(50),@Contents nvarchar(max),@UserId int,@CreateTime datetimeasi ... 
- C#调用windows API的一些方法
		使用C#调用windows API(从其它地方总结来的,以备查询) C#调用windows API也可以叫做C#如何直接调用非托管代码,通常有2种方法: 1. 直接调用从 DLL 导出的函数. 2. ... 
- mfc 调用Windows的API函数实现同步异步串口通信(源码)
		在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信.串口通信方便易行,应用广泛. 一般情况下,工控机和各智能仪表通过RS485总线进行通信.RS485的通信方式是半 ... 
随机推荐
- vue动态添加路由addRoutes之不能将动态路由存入缓存
			在我不知道vue的路由还可以通过addRoutes动态添加时,我只知道vue的路由都是写死在路由表中的,每当跳转时再去加载相应的路由.直到在一个新公司接到需要根据用户的权限显示不同的菜单的需求时才知道 ... 
- kvm+libvirt虚拟机快照浅析[转]
			浅析snapshots, blockcommit,blockpull 作者:Kashyap Chamarthy <kchamart#redhat.com> Date: Tue, 23 Oc ... 
- hadoop伪分布式搭建
			安装好jdk 减压hadoop压缩包 cd /home/hadoop/hadoop-2.7.3/etc/hadoop vi hadoop-env.sh 文件末尾处添加 jdk环境变量 export J ... 
- db2数据库常见问题
			db2数据库不能轻易改变表结构,不然表会进入暂挂状态,造成表被锁住. 解锁表语句:call sysproc.admin_cmd('reorg table <table name>'); 
- changXY
			changXY <!DOCTYPE html> <html> <head> <link rel="shortcut icon" href= ... 
- KMP算法与传统字符串寻找算法
			原理:KMP算法是一种模板匹配算法,它首先对模板进行便利,对于模板中与模板首字符一样和首字符进行标志-1,对于模板匹配中出现不匹配的若是第一轮检查标志为0,若不是第一轮检查标志为该元素与标志为-1的距 ... 
- Lesson 26 The best art critics
			Text I am an art student and I paint a lot of pictures. Manay people pretend that they understand mo ... 
- Redis Cluster(集群)
			一.概述 在前面的文章中介绍过了redis的主从和哨兵两种集群方案,redis从3.0版本开始引入了redis-cluster(集群).从主从-哨兵-集群可以看到redis的不断完善:主从复制是最简单 ... 
- 高级Java面试总结3
			1,java堆,分新生代老年代,新生代有Eden,from surviver,to surviver三个空间,堆被所有线程共.eden内存不足时,发生一次minor GC,会把from survivo ... 
- Linux中搭建Maven私服
			linux安装maven 先解压maven的压缩包apache-maven-3.5.4-bin.tar.gz 命令: tar -zavf pache-maven-3.5.4-bin.tar.gz ... 
