C# 發送消息SendKeys、SendMessage、keybd_event的用法

1、C#中SendKeys的用法.net

 

功能:將一個或多個按鍵消息發送到活動窗口,就如同在鍵盤上進行輸入同樣。blog

語法: SendKeys.Send(string keys);字符串

     SendKeys.SendWait(string keys);原型

說明:string

(1)發送字符串it

    SendKeys.SendWait("A"); //發送字母Aevent

   SendKeys.SendWait("ABC"); //發送字符串ABCast

    SendKeys.SendWait("輸入漢字"); //發送輸入漢字語法

(2)模擬發送+、^、%、~及圓括號 ( ) ,要將它放在大括號 ({}) 當中。static

   SendKeys.SendWait("{+}");  //發送加號

(3)模擬發送那些不顯示的字符,也要將它放在大括號 ({}) 當中。

   SendKeys.SendWait("{Enter}");  //發送回車   

   SendKeys.SendWait("{TAB}");  //發送TAB

   SenKeys.SendWait("{END}"); //發送END
   SenKeys.SendWait("{F5}"); //發送F5

(4)模擬發送 SHIFT、CTRL 及 ALT 等按鍵結合的組合鍵:

按鍵 代碼
Shift +
Ctrl ^
Alt %
      SenKeys.SendWait("^c"); //發送Ctrl+C ,必須是小寫!C#區分大小寫的,下同
  SendKeys.SendWait("v"); //發送Ctrl+v 

  SendKeys.SendWait("{A 10}");  //模擬10次按下字母A   

2、C#中Keybd_event的用法

語法:

 [DllImport("user32.dll",EntryPoint="keybd_event",SetLastError=true)]
 public static extern void keybd_event(byte bVk,byte bScan,int dwFlags,int dwExtraInfo);

 

從上述原型能夠看出,Keybd_event()共有四個參數:

第一個爲按鍵的虛擬鍵值,建議統一用(byte)Keys.*形式,便於記憶

    例如:A (byte)Keys.A,Tab (byte)Keys.Tab
第二個參數爲掃描碼,通常不用設置,用0代替就行;

第三個參數爲選項標誌,若是爲keydown則置0便可,若是爲keyup則設成"KEYEVENTF_KEYUP" 或是 "0x2"或是2,建議用0按下、2彈起簡單;

第四個參數通常也是置0便可。

    keybd_event((byte)Keys.A,0,0,0);  //按下A
    keybd_event((byte)Keys.A,0,2,0);  //彈起A

    keybd_event((byte)Keys.Enter,0,0,0);  //模擬按下回車

    //模擬Ctrl+V:
     //keybd_event((byte)Keys.ControlKey,0,0,0);//按下
      //keybd_event((byte)Keys.V,0,0,0);//按下
      //keybd_event((byte)Keys.V,0,2,0);//彈起
      //keybd_event((byte)Keys.ControlKey,0,2,0);//彈起

    keybd_event((byte)Keys.A,0,0,0);  //模擬按下A   SenKeys.SendWait("{END}"); //發送END--------------------- 做者:xtfnpgy 來源:CSDN 原文:https://blog.csdn.net/xtfnpgy/article/details/40511747 版權聲明:本文爲博主原創文章,轉載請附上博文連接!

相關文章
相關標籤/搜索