C# 发送消息SendKeys、SendMessage、keybd_event的用法
一、C#中SendKeys的用法
功能:將一個或多個按鍵消息發(fā)送到活動窗口,就如同在鍵盤上進行輸入一樣。
語法: SendKeys.Send(string keys);
? ? ?SendKeys.SendWait(string keys);
說明:
(1)發(fā)送字符串
? ? SendKeys.SendWait("A"); //發(fā)送字母A
? ?SendKeys.SendWait("ABC"); //發(fā)送字符串ABC
? ? SendKeys.SendWait("輸入漢字"); //發(fā)送輸入漢字
(2)模擬發(fā)送+、^、%、~及圓括號 ( ) ,要將它放在大括號 ({}) 當中。
? ?SendKeys.SendWait("{+}"); ?//發(fā)送加號
(3)模擬發(fā)送那些不顯示的字符,也要將它放在大括號 ({}) 當中。
? ?SendKeys.SendWait("{Enter}"); ?//發(fā)送回車? ?
? ?SendKeys.SendWait("{TAB}"); ?//發(fā)送TAB
? ?SenKeys.SendWait("{END}"); //發(fā)送END
? ?SenKeys.SendWait("{F5}"); //發(fā)送F5
(4)模擬發(fā)送 SHIFT、CTRL 及 ALT 等按鍵結(jié)合的組合鍵:
按鍵 代碼
Shift +
Ctrl ^
Alt %
? ? ? SenKeys.SendWait("^c"); //發(fā)送Ctrl+C ,必須是小寫!C#區(qū)分大小寫的,下同
? SendKeys.SendWait("v"); //發(fā)送Ctrl+v?
? SendKeys.SendWait("{A 10}"); ?//模擬10次按下字母A ??
二、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()共有四個參數(shù):
第一個為按鍵的虛擬鍵值,建議統(tǒng)一用(byte)Keys.*形式,便于記憶
? ? 例如:A?(byte)Keys.A,Tab?(byte)Keys.Tab
第二個參數(shù)為掃描碼,一般不用設(shè)置,用0代替就行;
第三個參數(shù)為選項標志,如果為keydown則置0即可,如果為keyup則設(shè)成"KEYEVENTF_KEYUP" 或是 "0x2"或是2,建議用0按下、2彈起簡單;
第四個參數(shù)一般也是置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}"); //發(fā)送END
---------------------
作者:xtfnpgy
來源:CSDN
原文:https://blog.csdn.net/xtfnpgy/article/details/40511747
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!
總結(jié)
以上是生活随笔為你收集整理的C# 发送消息SendKeys、SendMessage、keybd_event的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 清除webBrowser 缓存和Cook
- 下一篇: 股票藏獒是什么意思