當前位置:編程學習大全網 - 編程語言 - 在VB中怎麽用keybd_event函數模擬按下並彈起F1 ?

在VB中怎麽用keybd_event函數模擬按下並彈起F1 ?

keybd_event(112, 0, 0, 0) '模擬按下"F1"鍵

Sleep 200 '延時200毫秒

keybd_event(112, 0, KEYEVENTF_KEYUP, 0) '模擬彈起F1鍵

----------------------------------------------------------------------------------------

模擬鍵盤或鼠標的響應

我們壹般使用:

UINT SendInput(

UINT nInputs, // count of input events

?PINPUT pInputs, // array of input events

int cbSize // size of structure

);

API函數。第壹個參數是說明第二個參數的矩陣的維數的,第二個參數包含了響應事件,這個自己填充就可以,最後

是這個結構的大小,非常簡單,這是最簡單的方法模擬鍵盤鼠標了,呵呵。註意,這個函數還有個替代函數:

VOID keybd_event(

BYTE bVk, // 虛擬鍵碼

BYTE bScan, // 掃描碼

DWORD dwFlags,

ULONG_PTR dwExtraInfo // 附加鍵狀態

);

VOID mouse_event(

DWORD dwFlags, // motion and click options

DWORD dx, // horizontal position or change

DWORD dy, // vertical position or change

DWORD dwData, // wheel movement

ULONG_PTR dwExtraInfo // application-defined information

);

這兩個函數非常簡單了,我想那些按鍵精靈就是用的這個吧。上面的是模擬鍵盤,下面的是模擬鼠標的。這個僅僅是

模擬部分,要和遊戲聯系起來我們還需要找到遊戲的窗口才行,或者包含快捷鍵,就象按鍵精靈的那個激活鍵壹樣,我們

可以用GetWindow函數來枚舉窗口,也可以用Findwindow函數來查找制定的窗口(註意,還有壹個FindWindowEx),

FindwindowEx可以找到窗口的子窗口,比如按鈕,等什麽東西。當遊戲切換場景的時候我們可以用FindWindowEx來確定壹

些當前窗口的特征,從而判斷是否還在這個場景,方法很多了,比如可以GetWindowInfo來確定壹些東西,比如當查找不

到某個按鈕的時候就說明遊戲場景已經切換了,等等辦法。有的遊戲沒有控件在裏面,這是對圖像做坐標變換的話,這種

方法就要受到限制了。這就需要我們用別的辦法來輔助分析了。

附:常用模擬鍵的鍵值對照表。

鍵盤鍵與虛擬鍵碼對照表

字母和數字鍵 數字小鍵盤的鍵 功能鍵 其它鍵

鍵 鍵碼 鍵 鍵碼 鍵 鍵碼 鍵 鍵碼

A 65 0 96 F1 112 Backspace 8

B 66 1 97 F2 113 Tab 9

C 67 2 98 F3 114 Clear 12

D 68 3 99 F4 115 Enter 13

E 69 4 100 F5 116 Shift 16

F 70 5 101 F6 117 Control 17

G 71 6 102 F7 118 Alt 18

H 72 7 103 F8 119 Caps Lock 20

I 73 8 104 F9 120 Esc 27

J 74 9 105 F10 121 Spacebar 32

K 75 * 106 F11 122 Page Up 33

L 76 + 107 F12 123 Page Down 34

M 77 Enter 108 -- -- End 35

N 78 - 109 -- -- Home 36

O 79 . 110 -- -- Left Arrow 37

P 80 / 111 -- -- Up Arrow 38

Q 81 -- -- -- -- Right Arrow 39

R 82 -- -- -- -- Down Arrow 40

S 83 -- -- -- -- Insert 45

T 84 -- -- -- -- Delete 46

U 85 -- -- -- -- Help 47

V 86 -- -- -- -- Num Lock 144

W 87

X 88

Y 89

Z 90

0 48

1 49

2 50

3 51

4 52

5 53

6 54

7 55

8 56

9 57

  • 上一篇:四川天府銀行待遇好嗎?
  • 下一篇:計算機編程語言的高級語言
  • copyright 2024編程學習大全網