C# 模拟鼠标操作
[Flags]
enum MouseEventFlag : uint //設置鼠標動作的鍵值
{
Move = 0x0001, //發生移動
LeftDown = 0x0002, //鼠標按下左鍵
LeftUp = 0x0004, //鼠標松開左鍵
RightDown = 0x0008, //鼠標按下右鍵
RightUp = 0x0010, //鼠標松開右鍵
MiddleDown = 0x0020, //鼠標按下中鍵
MiddleUp = 0x0040, //鼠標松開中鍵
XDown = 0x0080,
XUp = 0x0100,
Wheel = 0x0800, //鼠標輪被移動
VirtualDesk = 0x4000, //虛擬桌面
Absolute = 0x8000
}
?
//設置當前鼠標位置
[DllImport("user32.dll")]
static extern bool SetCursorPos(int x, int y);
//操作鼠標,第一個函數定義操作類型,包括移動,單擊雙擊等
[DllImport("user32.dll")]
static extern bool mouse_event(MouseEventFlag flags, int x,int y,uint data,UIntPtr extraInfo);
?
[DllImport("USER32.DLL")]
public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
?
public static void MouseClick()
{
mouse_event(MouseEventFlag.LeftDown, 0, 0, 0, UIntPtr.Zero);
mouse_event(MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);
}
public static void MouseDoubleClick()
{
mouse_event(MouseEventFlag.LeftDown, 0, 0, 0, UIntPtr.Zero);
mouse_event(MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);
Thread.Sleep(50);
mouse_event(MouseEventFlag.LeftDown, 0, 0, 0, UIntPtr.Zero);
mouse_event(MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);
}
public static void MouseRightClick()
{
mouse_event(MouseEventFlag.LeftDown, 0, 0, 0, UIntPtr.Zero);
mouse_event(MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);
}
public static void MouseDoubleRightClick()
{
mouse_event(MouseEventFlag.RightDown, 0, 0, 0, UIntPtr.Zero);
mouse_event(MouseEventFlag.RightUp, 0, 0, 0, UIntPtr.Zero);
Thread.Sleep(50);
mouse_event(MouseEventFlag.RightDown, 0, 0, 0, UIntPtr.Zero);
mouse_event(MouseEventFlag.RightUp, 0, 0, 0, UIntPtr.Zero);
}
public static void SetString(int x,int y,string input)
{
Thread.Sleep(50);
SetCursorPos(x, y);
Thread.Sleep(50);
MouseClick();
Thread.Sleep(50);
Clipboard.SetText(input);
keybd_event(0xA2, 0, 0, 0);
keybd_event(0x56, 0, 0, 0);
keybd_event(0x56, 0, 2, 0);
keybd_event(0xA2, 0, 2, 0);
}
轉載于:https://www.cnblogs.com/yangyang12138/p/6473609.html
總結
- 上一篇: EvenBus源码分析
- 下一篇: c# char unsigned_dll