生活随笔
收集整理的這篇文章主要介紹了
C# WPF 中用代码模拟鼠标和键盘的操作
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
C# WPF 中用代碼模擬鼠標(biāo)和鍵盤的操作 原文:C# WPF 中用代碼模擬鼠標(biāo)和鍵盤的操作
原文地址 C#開發(fā)者都知道,在Winform 開發(fā)中,SendKeys類提供的方法是很實(shí)用的。但是可惜的是,在WPF中不能使用這個(gè)方法了。 我們知道,在WPF中非UI線程刷新UI線程,需要使用Dispatcher.Invoke((Action)delegate { /* Your code is put here */ }); 方法。這里調(diào)用System.Windows.Forms.SendKeys.Send()方法會(huì)報(bào)錯(cuò)。
下面這個(gè)代碼文件做了一個(gè)很好的包裝,可以下載后參考: Simulation.zip 如何使用呢? 很簡(jiǎn)單, 要敲一個(gè)鍵, 比如回車: Keyboard.Press(Key.Enter); Keyboard.Release(Key.Enter); 要敲一個(gè)組合鍵:比如Alt+F4: Keyboard.Press(Key.LeftAlt); Keyboard.Press(Key.F4); Keyboard.Release(Key.LeftAlt); Keyboard.Release(Key.F4); 要敲一段文字: Keyboard.Type(“notepad”);
鼠標(biāo)與之類似,比如: Mouse.MoveTo(new System.Drawing.Point(x, y)); Mouse.Click(MouseButton.Right); Simulation類的定義如下:
[DllImport(
"user32.dll" , SetLastError =
true )]
internal static extern int SendInput (
int nInputs,
ref INPUT mi,
int cbSize);[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;
internal int time;
internal IntPtr dwExtraInfo;
};
[Flags]
internal enum SendMouseInputFlags
{
Move =
0x0001 ,
LeftDown =
0x0002 ,
LeftUp =
0x0004 ,
RightDown =
0x0008 ,
RightUp =
0x0010 ,
MiddleDown =
0x0020 ,
MiddleUp =
0x0040 ,
XDown =
0x0080 ,
XUp =
0x0100 ,
Wheel =
0x0800 ,
Absolute =
0x8000 ,
}; posted on
2018-08-14 11:01 NET未來之路 閱讀(
... ) 評(píng)論() 編輯 收藏
轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/9473325.html
總結(jié)
以上是生活随笔 為你收集整理的C# WPF 中用代码模拟鼠标和键盘的操作 的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。