C 模擬鍵盤按鍵(ALT,CTRL

2021-04-22 08:01:56 字數 2477 閱讀 3306

[dllimport("user32.dll")]

static

extern

void keybd_event(byte bvk, byte bscan, uint dwflags, uint dwextrainfo);

[dllimport("user32.dll")]

static

extern

byte mapvirtualkey(byte wcode, int wmap);

private

void button2_click(object sender, eventargs e)

//模擬鍵盤動作api函式keydb_event,它可以模擬對鍵盤上的某個或某些鍵進行按下

//或放開的動作。

//   void keybd_event(

//     byte bvk, // 虛擬鍵值。

//     byte bscan, // 硬體掃瞄碼。

//     dword dwflags, // 動作標識。

//     dword dwextrainfo // 與鍵盤動作關聯的輔加資訊。

//   );

//  其中,bvk表示虛擬鍵值,其實它是乙個byte型別值的巨集,其取值範圍為1-254。有

//關虛擬鍵值表請在msdn上使用

//關鍵字「virtual-key codes」查詢相關資料。bscan表示當鍵盤上某鍵被按下和放開

//時,鍵盤系統硬體產生的掃瞄碼

//,我們可以mapvirtualkey()函式在虛擬鍵值與掃瞄碼之間進行轉換。dwflags表示各種

//各樣的鍵盤動作,它有兩種取

//值:keyeventf_extendedkey和keyeventf_keyup。

//  下面我們使用一段**實現在遊戲中按下shift+r快捷鍵對攻擊物件進行攻擊。

//   keybd_event(vk_control,mapvirtualkey(vk_control,0),0,0); //按下ctrl

//鍵。

//   keybd_event(0x52,mapvirtualkey(0x52,0),0,0);//鍵下r鍵。

//   keybd_event(0x52,mapvirtualkey(0x52,0), keyeventf_keyup,0);//放開r鍵。

//   keybd_event(vk_control,mapvirtualkey(vk_control,0),

//   keyeventf_keyup,0);//放開ctrl鍵。

//函式功能:該函式合成一次擊鍵事件。系統可使用這種合成的擊鍵事件來產生wm_keyup或wm_keydown訊息,鍵盤驅動程式的中斷處理程式呼叫keybd_event函式。在windows   nt中該函式己被使用sendlhput來替代它。   

//          函式原型;void   keybd_event(byte   bvk,byte   bscan,dword   dwflags,dword   dwextralnfo);   

//          引數:   

//          bvk:定義乙個虛據擬鍵碼。鍵碼值必須在1~254之間。   

//          bscan:定義該鍵的硬體掃瞄碼。   

//          dwflags:定義函式操作的名個方面的乙個標誌位集。應用程式可使用如下一些預定義常數的組合設定標誌位。   

//          keyeventf_exetendedkey:若指定該值,則掃瞄碼前乙個值為oxeo(224)的字首位元組。deyeventf_keyup:若指定該值,該鍵將被釋放;若未指定該值,該鍵交被接下。dwextralnfo:定義與擊鍵相關的附加的32位值。   

//          返回值:該函式無返回值。   

//          備註:儘管keybd_event傳遞乙個與oem相關的硬體掃瞄碼給系統,但應用程式不能用此掃瞄碼。系統在內部將掃瞄碼轉換成虛擬鍵碼,並且在傳送給應用程式前清除鍵碼的up/down位。應用程式可以摸擬printscreen鍵的按下來獲得乙個螢幕快照,並把它存放到剪下板中。若要做到這一點,則要將keybd_event的bvk引數置為vk_snapshot,bscan引數置為0(用以獲得全屏快照)或hscan置為1(僅獲得活動視窗的快照)。windows   ce:windowsce支援dwflags引數附加的標誌位。即使用keyeventf_silent標誌模擬擊鍵,而不產生敲擊的聲音。windows   ce不支援keyeventf_extendedkey標誌。

//或者

private

void mysendkeys()//輸入使用者名稱密碼

sendkeys.sendwait("");

foreach (char arrayvalue in via.pwd.tochararray())

sendkeys.sendwait("");

}

模擬鍵盤按鍵

模擬全域性按鍵可以用keybd event,sendinput來完成,下面是模擬一次caps lock 按鍵時兩個api函式的實現方法 keybd event keybd event vk capital,0,keyeventf extendedkey 0,0 key down keybd even...

模擬鍵盤按鍵

textbox1.focus sendkeys.send v 模擬鍵盤按鍵ctrl v 貼上 鍵 backspace 或或break caps lock del或delete 或向下鍵 endenter 或 esc help home ins或insert 或向左鍵 num lock page do...

python 模擬按鍵模擬鍵盤按鍵按下放開

python 模擬按鍵模擬鍵盤按鍵按下放開 python模擬按鍵 pip install pypiwin32 安裝庫import win32con import win32api import time 匯入打個比方 模擬awin32api.keybd event 65,0,0,0 按下 time....