ZKX's LAB

wpf键盘输入 在WPF 如何虚拟键盘的功能

2021-04-26知识3

在WPF 如何虚拟键盘的功能 用WPF中TextBox的输入法控制InputMethod.PreferredImeConversionMode

wpf中怎么模拟键盘输入 其实SendKeys类提供的方法蛮好用的,可惜的是WPF中不能用了,说是WPF的消息循环方式改成了Dispatcher,所以直接调用System.Windows.Forms.SendKeys.Send()方法会报错.不过没关系,至少有use32的SendInput可用,通过P/Invoke方式,我们可以模拟键盘或鼠标操作.定义是这样的:[DllImport(\"user32.dll\",SetLastError=true)]internal static extern int SendInput(int nInputs,ref INPUT mi,int cbSize);其中的INPUT结构表示一个键盘或鼠标操作:[StructLayout(LayoutKind.Sequential)]internal struct INPUT{internal int type;internal INPUTUNION union;};[StructLayout(LayoutKind.Explicit)]internal struct INPUTUNION{[FieldOffset(0)]internal MOUSEINPUT mouseInput;[FieldOffset(0)]internal KEYBDINPUT keyboardInput;};[StructLayout(LayoutKind.Sequential)]internal struct MOUSEINPUT{internal int dx;internal int dy;internal int mouseData;internal int dwFlags;internal int time;internal IntPtr dwExtraInfo;};[StructLayout(LayoutKind.Sequential)]internal struct KEYBDINPUT{internal short wVk;internal short wScan;internal int dwFlags;。

wpf中怎么编辑用键盘来下达指令 现在网上的库大部分都是VB的那个发送键盘指令的库,那个在WPF里面是用不了的,WPF的话可以用System.Windows.Forms中的其实跟VB中的Microsoft.VisualBasic.Devices这个里面的SendKeys用法差不多一样,吐槽一下,新的这个也可以在VB中使用好像,我看MSDN中Forms中的SendKeys也能在 VB中用,真是这一个小问题浪费了我一下午的时间。贴上代码[DllImport(\"User32.dll\",EntryPoint=\"FindWindow\")]private static extern IntPtr FindWindow(string lpClassName,string lpWindowName);[DllImport(\"user32.dll\",EntryPoint=\"FindWindowEx\")]static extern IntPtr FindWindowEx(IntPtr hwndParent,IntPtr hwndChildAfter,string lpClass,string lpszWindow);[DllImport(\"user32.dll\",EntryPoint=\"SendMessage\")]public static extern IntPtr SendMessage(IntPtr hWnd,int Msg,IntPtr wParam,string lParam);[DllImport(\"user32.dll\",EntryPoint=\"SendMessage\")]public static extern IntPtr SendMessage(IntPtr hwnd,int wMsg,IntPtr wParam,IntPtr lParam);const int WM_CHAR=0x0102;const int WM_SETTEXT=0x000C;const int VK_RETURN=0x0d;private void xin(object sender,。

#wpf模拟键盘#wpf键盘输入

随机阅读

qrcode
访问手机版