c#调用系统键盘(触摸键盘和屏幕键盘)
调用触摸键盘(win8及其以上有触摸键盘)
/// <summary>
/// 触控键盘
/// </summary>
public static class TouchKeyBoard
{
private const Int32 WM_MOVE = 0x0003;
private const Int32 WM_SYSCOMMAND = 274;
private const UInt32 SC_CLOSE = 61536;
[DllImport("User32.dll", SetLastError = true, CharSet = CharSet.Auto, EntryPoint = "PostMessage")]
private static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImport("User32.dll", SetLastError = true, CharSet = CharSet.Auto, EntryPoint = "PostMessage")]
private static extern bool PostMessage(IntPtr hWnd, int Msg, uint wParam, uint lParam);
[DllImport("User32.dll", SetLastError = true, CharSet = CharSet.Auto, EntryPoint = "PostMessage")]
private static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
[DllImport("User32.dll", SetLastError = true, CharSet = CharSet.Auto, EntryPoint = "FindWindow")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("User32.dll", SetLastError = true, CharSet = CharSet.Auto, EntryPoint = "RegisterWindowMessage")]
private static extern int RegisterWindowMessage(string lpString);
private static readonly IntPtr HWND_TOP = new IntPtr(0); //将窗口置于Z序的顶部
private static readonly IntPtr HWND_TOPMOST = new IntPtr(-1); //将窗口置于所有非顶层窗口之上。即使窗口未被激活窗口也
将保持顶级位置
private static readonly IntPtr HWND_NOTOPMOST = new IntPtr(-2); //不是顶部
//标识位uFlags
private const UInt32 SWP_NOSIZE = 0x0001; //保持当前的大小(忽略cx和cy参数)
private const UInt32 SWP_NOMOVE = 0x0002; //保持当前的位置(忽略x和y参数)
private const UInt32 SWP_NOZORDER = 0x0004;//保持当前的次序(忽略pWndInsertAfter)
private const UInt32 SWP_NOREDRAW = 0x0008;//不重画变化。如果设置了这个标志,则不发生任何种类的变化
private const UInt32 SWP_NOACTIVATE = 0x0010;//不激活窗口。如果没有设置这个标志,则窗口将被激活并移动到顶层或非顶
层窗口组(依赖于pWndInsertAfter参数的设置)的顶部
private const UInt32 SWP_FRAMECHANGED = 0x0020;//向窗口发送一条WM_NCCALCSIZE消息,即使窗口的大小不会改变。如
果没有指定这个标志,则仅当窗口的大小发生变化时才发送WM_NCCALCSIZE消息
private const UInt32 SWP_SHOWWINDOW = 0x0040;//显示窗口
private const UInt32 SWP_HIDEWINDOW = 0x0080;//隐藏窗口
private const UInt32 SWP_NOCOPYBITS = 0x0100;// 废弃这个客户区的内容。如果没有指定这个参数,则客户区的有效内容将被
保存,
private const UInt32 SWP_NOOWNERZORDER = 0x0200;//不改变拥有者窗口在Z轴次序上的位置。
private const UInt32 SWP_NOSENDCHANGING = 0x0400;//防止窗口接收WM_WINDOWPOSCHANGING消息
private const UInt32 TOPMOST_FLAGS = SWP_NOMOVE | SWP_NOSIZE;
/// <summary>
评论3
最新资源