C# 模擬鍵盤滑鼠控制電腦
滑鼠模擬
指定一個螢幕像素的座標位置int x = 1255; int y = 161; Cursor.Position = new Point(x, y); ClassMouse.LeftClick(); //按下滑鼠左鍵
鍵盤模擬
官方文件的範例是用小算盤程式,計算111*11=public class demo { [DllImport("USER32.DLL", CharSet = CharSet.Unicode)] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); // Activate an application window. [DllImport("USER32.DLL")] public static extern bool SetForegroundWindow(IntPtr hWnd); // Send a series of key presses to the Calculator application. public static void Calculator() { // Get a handle to the Calculator application. The window class // and window name were obtained using the Spy++ tool. IntPtr calculatorHandle = FindWindow("ApplicationFrameWindow", "小算盤"); // Verify that Calculator is a running process. if (calculatorHandle == IntPtr.Zero) { MessageBox.Show("Calculator is not running."); return; } // Make Calculator the foreground application and send it // a set of calculations. SetForegroundWindow(calculatorHandle); SendKeys.SendWait("111"); SendKeys.SendWait("*"); SendKeys.SendWait("11"); SendKeys.SendWait("="); } //以下是關閉hangouts 視訊通話視窗 public static void findHangoutsWindow() { //取得視訊通話視窗 IntPtr HangoutsHandle = FindWindow(null, "Hangouts 視訊通話 - Google Chrome"); //判斷視窗是否存在 if (HangoutsHandle == IntPtr.Zero) { return; } SetForegroundWindow(HangoutsHandle); Thread.Sleep(1000); SendKeys.SendWait("^w"); //關閉視窗快捷鍵是ctrl+w //等待視窗關閉完成 while (HangoutsHandle != IntPtr.Zero) { Thread.Sleep(1000); HangoutsHandle = FindWindow(null, "Hangouts 視訊通話 - Google Chrome"); } } }
鍵盤指令表
官方資料加號 (+)、 插入號 (^)、 百分比符號 (%)、 波狀符號 (~) 和括號 () 有特殊意義 SendKeys。
Key
|
程式碼
|
---|---|
退格鍵
|
{BACKSPACE}, {BS}, or {BKSP}
|
中斷
|
{BREAK}
|
CAPS LOCK
|
{CAPSLOCK}
|
DEL 或刪除
|
{DELETE} 或 {DEL}
|
向下鍵
|
{DOWN}
|
END
|
{END}
|
Enter
|
{ENTER} 或 ~
|
ESC
|
{ESC}
|
說明
|
{HELP}
|
首頁
|
{HOME}
|
插入鍵
|
{INSERT} 或 {INS}
|
向左鍵
|
{LEFT}
|
NUM LOCK 鍵
|
{NUMLOCK}
|
PAGE DOWN
|
{PGDN}
|
PAGE UP
|
{PGUP}
|
PRINT SCREEN 鍵
|
{PRTSC}(保留供日後使用)
|
向右鍵
|
{RIGHT}
|
捲動鎖定
|
{SCROLLLOCK}
|
TAB
|
{TAB}
|
向上鍵
|
{UP}
|
F1
|
{F1}
|
F2
|
{F2}
|
F3
|
{F3}
|
F4
|
{F4}
|
F5
|
{F5}
|
F6
|
{F6}
|
F7
|
{F7}
|
F8
|
{F8}
|
F9
|
{F9}
|
F10
|
{F10}
|
F11
|
{F11}
|
F12
|
{F12}
|
F13
|
{F13}
|
F14
|
{F14}
|
F15
|
{F15}
|
F16
|
{F16}
|
加入數字鍵台
|
{ADD}
|
減去數字鍵台
|
{SUBTRACT}
|
相乘的數字鍵台
|
{MULTIPLY}
|
數字鍵台除以
|
{DIVIDE}
|
若要指定索引鍵加上任意組合的 SHIFT、 CTRL 和 ALT 鍵,在之前的按鍵碼的其中一個或多個下列程式碼。
Key
|
程式碼
|
---|---|
SHIFT 鍵
|
+
|
CTRL
|
^
|
ALT 鍵
|
%
|
若要指定的任何組合的 SHIFT、 CTRL 和 alt 鍵應該按住時按下幾個其他索引鍵,以括號括住這些機碼的程式碼。 例如,若要指定 E 和 C 按下時按住 shift 鍵,使用"+ (EC) 」。 若要指定按住 shift 鍵,E 是按下,後面接著 C shift 鍵,不使用"+ EC"。
其他組合
public static void demo() { //工作管理員 SendKeys.SendWait("^+{ESC}"); SendKeys.SendWait("^%{DELETE}"); //可以加括號代表一起做,雖然shift、ctrl、alt功能鍵本身就帶有一起按的動作 SendKeys.SendWait("^(%{DELETE})"); //關閉程式 SendKeys.Send("%{F4}"); //連續按鍵 按 ← 五次 SendKeys.SendWait("{left 5}"); }
參考自:
microsoft官方:https://msdn.microsoft.com/zh-tw/library/ms171548(v=vs.110).aspx
https://msdn.microsoft.com/zh-tw/library/system.windows.forms.sendkeys.send(v=vs.110).aspx
留言
張貼留言