как программно перемещать мышь, щелкнуть, правым кликом и нажатием клавиши и т. д. в winform и wpf?

как программно перемещать мышь, щелкнуть, щелкнуть правой кнопкой мыши и нажать клавишу и т.д. в winform и wpf. пожалуйста, помогите мне с fragmentом кода, если это возможно.

Если я правильно понял ваш вопрос, вы хотите по-настоящему имитировать ввод. В этом случае SendInput – это путь. Из этой ссылки

PInvoke to SendInput – это официальный способ моделирования ввода. Он вводит вход через все ожидаемые коды кода и неотличим от реального ввода.

Простой способ использовать это с InputSimulator в CodePlex. Добавляя ссылку на InputSimulator.dll, вы можете моделировать нажатия клавиш, например

 // Tab InputSimulator.SimulateKeyDown(VirtualKeyCode.TAB); // Shift+Tab InputSimulator.SimulateModifiedKeyStroke(VirtualKeyCode.SHIFT, VirtualKeyCode.TAB); // etc. 

Однако InputSimulator еще не поддерживает мышь, но вот стартер для MouseSimulator . Пока что только LeftClick и RightClick, но с помощью следующих двух ссылок вы можете легко расширить его с помощью MouseMove и т. Д.

  • pinvoke.net: sendinput (user32)
  • Как я могу эмулировать события мыши в приложении?

MouseSimulator

 public class MouseSimulator { [DllImport("user32.dll", SetLastError = true)] static extern uint SendInput(uint nInputs, ref INPUT pInputs, int cbSize); [StructLayout(LayoutKind.Sequential)] struct INPUT { public SendInputEventType type; public MouseKeybdhardwareInputUnion mkhi; } [StructLayout(LayoutKind.Explicit)] struct MouseKeybdhardwareInputUnion { [FieldOffset(0)] public MouseInputData mi; [FieldOffset(0)] public KEYBDINPUT ki; [FieldOffset(0)] public HARDWAREINPUT hi; } [StructLayout(LayoutKind.Sequential)] struct KEYBDINPUT { public ushort wVk; public ushort wScan; public uint dwFlags; public uint time; public IntPtr dwExtraInfo; } [StructLayout(LayoutKind.Sequential)] struct HARDWAREINPUT { public int uMsg; public short wParamL; public short wParamH; } struct MouseInputData { public int dx; public int dy; public uint mouseData; public MouseEventFlags dwFlags; public uint time; public IntPtr dwExtraInfo; } [Flags] enum MouseEventFlags : uint { MOUSEEVENTF_MOVE = 0x0001, MOUSEEVENTF_LEFTDOWN = 0x0002, MOUSEEVENTF_LEFTUP = 0x0004, MOUSEEVENTF_RIGHTDOWN = 0x0008, MOUSEEVENTF_RIGHTUP = 0x0010, MOUSEEVENTF_MIDDLEDOWN = 0x0020, MOUSEEVENTF_MIDDLEUP = 0x0040, MOUSEEVENTF_XDOWN = 0x0080, MOUSEEVENTF_XUP = 0x0100, MOUSEEVENTF_WHEEL = 0x0800, MOUSEEVENTF_VIRTUALDESK = 0x4000, MOUSEEVENTF_ABSOLUTE = 0x8000 } enum SendInputEventType : int { InputMouse, InputKeyboard, InputHardware } public static void ClickLeftMouseButton() { INPUT mouseDownInput = new INPUT(); mouseDownInput.type = SendInputEventType.InputMouse; mouseDownInput.mkhi.mi.dwFlags = MouseEventFlags.MOUSEEVENTF_LEFTDOWN; SendInput(1, ref mouseDownInput, Marshal.SizeOf(new INPUT())); INPUT mouseUpInput = new INPUT(); mouseUpInput.type = SendInputEventType.InputMouse; mouseUpInput.mkhi.mi.dwFlags = MouseEventFlags.MOUSEEVENTF_LEFTUP; SendInput(1, ref mouseUpInput, Marshal.SizeOf(new INPUT())); } public static void ClickRightMouseButton() { INPUT mouseDownInput = new INPUT(); mouseDownInput.type = SendInputEventType.InputMouse; mouseDownInput.mkhi.mi.dwFlags = MouseEventFlags.MOUSEEVENTF_RIGHTDOWN; SendInput(1, ref mouseDownInput, Marshal.SizeOf(new INPUT())); INPUT mouseUpInput = new INPUT(); mouseUpInput.type = SendInputEventType.InputMouse; mouseUpInput.mkhi.mi.dwFlags = MouseEventFlags.MOUSEEVENTF_RIGHTUP; SendInput(1, ref mouseUpInput, Marshal.SizeOf(new INPUT())); } } 
  • Как вы привязываете CollectionContainer к коллекции в модели представления?
  • Установите фокус на текстовое поле в WPF
  • Каков наилучший способ передать событие в ViewModel?
  • WPF Get Element (s) под мышью
  • WPF TabControl - предотrotation разгрузки при изменении вкладки?
  • Как вы успешно реализовали функцию MessageBox.Show () в MVVM?
  • Плоская кнопка wpf
  • Как отображать номера строк в ListView?
  • Закрыть окно из ViewModel
  • WPF и первоначальный фокус
  • WPF MVVM INotifyPropertyChanged Implementation - модель или ViewModel
  • Давайте будем гением компьютера.