1. 程式人生 > >C# WPF 中用程式碼模擬滑鼠和鍵盤的操作

C# WPF 中用程式碼模擬滑鼠和鍵盤的操作

  原文地址
  C#開發者都知道,在Winform開發中,SendKeys類提供的方法是很實用的。但是可惜的是,在WPF中不能使用這個方法了。
  我們知道,在WPF中非UI執行緒重新整理UI執行緒,需要使用Dispatcher.Invoke((Action)delegate { /* Your
code is put here */ });
方法。這裡呼叫System.Windows.Forms.SendKeys.Send()方法會報錯。

  下面這個程式碼檔案做了一個很好的包裝,可以下載後參考:
  Simulation.zip
  
  如何使用呢?
  很簡單, 要敲一個鍵, 比如回車:
  Keyboard

.Press(Key.Enter);
  Keyboard.Release(Key.Enter);
  
  要敲一個組合鍵:比如Alt+F4:
  Keyboard.Press(Key.LeftAlt);
  Keyboard.Press(Key.F4);
  Keyboard.Release(Key.LeftAlt);
  Keyboard.Release(Key.F4);
  
  要敲一段文字:
  Keyboard.Type(“notepad”);

  滑鼠與之類似,比如:
  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);

//其中的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; 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, };

相關推薦

C# WPF 中用程式碼模擬滑鼠鍵盤操作

  原文地址   C#開發者都知道,在Winform開發中,SendKeys類提供的方法是很實用的。但是可惜的是,在WPF中不能使用這個方法了。   我們知道,在WPF中非UI執行緒重新整理UI執行

C#模擬滑鼠鍵盤操作

本文旨在自己動手實現一個類似於“按鍵精靈”的桌面軟體。第一部分介紹了簡單的模擬方式,但是有些軟體能夠遮蔽掉這種簡單模擬帶來的效果,因此第二部分將介紹如何從驅動級層面進行模擬。“遊戲外掛一般分為三個級別:初級是滑鼠、鍵盤模擬,中級是Call遊戲內部函式,讀寫記憶體,高階是抓包,

Java中模擬滑鼠鍵盤輸入

{private Robot robot =null;public RobotDemo() ...{   try...{    robot =new Robot();   }catch (AWTException e) ...{    e.printStackTrace();   }}/** *//** 可以

自動化滑鼠鍵盤操作pyautogui

一  pyautogui模組簡要說明 ## 使用 pyautogui 模組相關函式,可以模擬滑鼠及鍵盤操作, 完整說明文件見: http://pyautogui.readthedocs.org/ # pip install pyautogui # 要注意的是,模擬移動滑鼠與擊

pyautogui自動化控制滑鼠鍵盤操作

pyautogui自動化控制滑鼠和鍵盤操作 安裝 pyautogui滑鼠操作樣例 pyautogui鍵盤操作樣例 按鍵支援 提示資訊 alert option password prompt

selenium中模擬滑鼠鍵盤操作

首先要重寫一個WebDriverEventListener的介面類 1.模擬滑鼠操作 EventFiringMouse mouse = new EventFiringMouse(driver, webDriverEventListener); EventFiringTouch touch

C++實現滑鼠控制 封裝常見的模擬滑鼠鍵盤操作函式

API 或 MFC 視窗程式 裡 有 函式, 例如 API 函式 設位置: BOOL SetCursorPos( int x, int y); 引數是螢幕座標x,y 標頭檔案 Winuser.h 連結庫 #pragma comment (lib, "User32.lib") 或取位

模擬滑鼠模擬鍵盤

模擬滑鼠 void __fastcall TForm1::Button1Click(TObject *Sender) { HWND h,h1; TRect rc; int i,j; Sleep(500); h1=GetDesktopWindow();

python自動化滑鼠鍵盤PyUserInput(pymousepykeyboard)

引 在使用電腦的時候,偶爾有需求要模擬滑鼠鍵盤,進行一些機械重複的操作(重新整理網頁、搶票、某些小遊戲等)。如果為此專門下載一個按鍵精靈,總感覺殺雞用牛刀,所以就開始探索一些輕量級解決方案。本人電腦上配置了Python,自然就想到那句名言 方案 參考網上的各種例子後,發現了PyUse

用GUI 自動化控制滑鼠鍵盤

GUI自動化,被稱為 ‘圖形使用者介面自動化’。有人調侃過,有了GUI自動化,你的程式就像一個活人使用者坐在計算機面前,能做任何事情,除了將咖啡潑在鍵盤上。 安裝 pyautogui 模組 pyautogui模組可以向Windows,OS X 和Linux傳送虛擬的鍵盤和滑鼠點。

c#使用API進行模擬滑鼠點選 底層操作同樣簡單

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Window

重灌系統時,USB介面滑鼠鍵盤不能使用的解決辦法

重灌系統時,USB介面滑鼠和鍵盤不能使用的解決辦法 有時重灌系統時,發現USB滑鼠和鍵盤都不能用,導致無法裝驅動等操作,安全模式也進入不了,這個是怎麼回事呢? 因為鍵盤是USB插口的,因為沒進入系統的時候USB還無法實現資料傳輸。建議使用普通的圓口的,如果沒有圓口滑鼠,就請重新設定bios裡

[python] PyMouse、PyKeyboard用python操作滑鼠鍵盤

  1、PyUserInput 簡介 PyUserInput是一個使用python的跨平臺的操作滑鼠和鍵盤的模組,非常方便使用。支援的平臺及依賴如下: Linux - Xlib Mac - Quartz, AppKit Windows - pywin32, pyHook 支

python教程:PyMouse、PyKeyboard用python操作滑鼠鍵盤

  1、PyUserInput 簡介 PyUserInput是一個使用python的跨平臺的操作滑鼠和鍵盤的模組,非常方便使用。支援的平臺及依賴如下: Linux - Xlib Mac - Quartz, AppKit Windows - pywin

(轉)python selenium-webdriver 元素操作滑鼠鍵盤事件

參考資料:https://blog.csdn.net/zh175578809/article/details/76767748 參考資料2:https://blog.csdn.net/qq_41817302/article/details/79618654   selenium 提供了比較完整的鍵盤操作,

遮蔽OTG 滑鼠鍵盤,只支援OTG U盤

kernel-4.4/drivers/hid/usbhid/hid-core.c static int usbhid_probe(struct usb_interface *intf, const struct usb_device_id * dbg_h

全網最詳細的一款滿足多臺電腦共用一個滑鼠鍵盤的工具Synergy(圖文詳解)

   不多說,直接上乾貨!  前言          如今無論你是在公司做大資料開發還是實驗室裡搞科研,這個軟體確實好用,作為正在通往大資料架構師路上的我們沒有幾臺電腦怎麼行?桌上型電腦、筆記本,都放在寫字檯上,筆記本內建鍵盤滑鼠,桌上型電腦則有一套無線鍵鼠。經常需要多臺切換使用,這時椅子

Emacs配置C/C++-mode的程式碼智慧提示自動補全

;;一鍵快速編譯 C++-mode (defun quick-compile ()"A quick compile funciton for C++" (interactive) (compile (concat "g++ -g -pg " (buffer-name (current-buffer))

高精度乘法 【C++版(簡單模擬FFT快速版)java版】

高精度乘法C++版 簡單模擬版(N^2複雜度): #include <cstdio> #include <cstring> #include <cstdlib> #include <memory.h> using names

python:控制滑鼠鍵盤

# # _*_ coding:UTF-8 _*_ import win32api import win32con import win32gui from ctypes import * import time VK_CODE = { 'backspace':0x08, 'tab':0x09,