C#使用win32api keybd_event模拟按键 【转】

来源:赵克立博客 分类: C# 标签:C#Win32Api发布时间:2017-03-15 12:56:39最后更新:2017-03-15 13:16:19浏览:7118
版权声明:
本文为博主学习过程中整理发布,如有侵权请告知
更新时间:
2017-03-15 13:16:19
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

Windows提供了一个模拟键盘API函数Keybd_event(),该函数能触发一个按键事件,也就是说会产生一个WM_KEYDOWN或WM_KEYUP消息。     

[DllImport("user32.dll", EntryPoint = "keybd_event")]
public static extern void keybd_event(
    byte bVk,    //虚拟键值
    byte bScan,// 一般为0
    int dwFlags,  //这里是整数类型  0 为按下,2为释放
    int dwExtraInfo  //这里是整数类型 一般情况下设成为 0
);

 

使用方法:

keybd_event((byte)Keys.LWin, 0, 0, 0);   //按下LWIN
keybd_event((byte)Keys.D, 0, 0, 0);         //按下D
keybd_event((byte)Keys.LWin, 0, 2, 0);   //释放LWIN
keybd_event((byte)Keys.D, 0, 2, 0);        //释放D

补充:

1.调用API函数记得引用:using System.Runtime.InteropServices;

2.表格如下,是转过来的。

PS:如果上面(byte)keys.Alt等出现overflow 的问题,可以直接用表格的数字来代替。

 

虚拟键码

对应值

对应键

VK_LBUTTON

1

鼠标左键

VK_RBUTTON

2

鼠标右键

VK_CANCEL

3

Cancel

VK_MBUTTON

4

鼠标中键

VK_XBUTTON1

5


VK_XBUTTON2

6


VK_BACK

8

Backspace

VK_TAB

9

Tab

VK_CLEAR

12

Clear

VK_RETURN

13

Enter

VK_SHIFT

16

Shift

VK_CONTROL

17

Ctrl

VK_MENU

18

Alt

VK_PAUSE

19

Pause

VK_CAPITAL

20

Caps Lock

VK_KANA

21


VK_HANGUL

21


VK_JUNJA

23


VK_FINAL

24


VK_HANJA

25


VK_KANJI

25*


VK_ESCAPE

27

Esc

VK_CONVERT

28


VK_NONCONVERT

29


VK_ACCEPT

30


VK_MODECHANGE

31


VK_SPACE

32

Space

VK_PRIOR

33

Page Up

VK_NEXT

34

Page Down

VK_END

35

End

VK_HOME

36

Home

VK_LEFT

37

Left Arrow

VK_UP

38

Up Arrow

VK_RIGHT

39

Right Arrow

VK_DOWN

40

Down Arrow

VK_SELECT

41

Select

VK_PRINT

42

Print

VK_EXECUTE

43

Execute

VK_SNAPSHOT

44

Snapshot

VK_INSERT

45

Insert

VK_DELETE

46

Delete

VK_HELP

47

Help

48

0


49

1


50

2


51

3


52

4


53

5


54

6


55

7


56

8


57

9


65

A


66

B


67

C


68

D


69

E


70

F


71

G


72

H


73

I


74

J


75

K


76

L


77

M


78

N


79

O


80

P


81

Q


82

R


83

S


84

T


85

U


86

V


87

W


88

X


89

Y


90

Z


VK_LWIN

91


VK_RWIN

92


VK_APPS

93


VK_SLEEP

95


VK_NUMPAD0

96

小键盘 0

VK_NUMPAD1

97

小键盘 1

VK_NUMPAD2

98

小键盘 2

VK_NUMPAD3

99

小键盘 3

VK_NUMPAD4

100

小键盘 4

VK_NUMPAD5

101

小键盘 5

VK_NUMPAD6

102

小键盘 6

VK_NUMPAD7

103

小键盘 7

VK_NUMPAD8

104

小键盘 8

VK_NUMPAD9

105

小键盘 9

VK_MULTIPLY

106

小键盘 *

VK_ADD

107

小键盘 +

VK_SEPARATOR

108

小键盘 Enter

VK_SUBTRACT

109

小键盘 -

VK_DECIMAL

110

小键盘 .

VK_DIVIDE

111

小键盘 /

VK_F1

112

F1

VK_F2

113

F2

VK_F3

114

F3

VK_F4

115

F4

VK_F5

116

F5

VK_F6

117

F6

VK_F7

118

F7

VK_F8

119

F8

VK_F9

120

F9

VK_F10

121

F10

VK_F11

122

F11

VK_F12

123

F12

VK_F13

124


VK_F14

125


VK_F15

126


VK_F16

127


VK_F17

128


VK_F18

129


VK_F19

130


VK_F20

131


VK_F21

132


VK_F22

133


VK_F23

134


VK_F24

135


VK_NUMLOCK

144

Num Lock

VK_SCROLL

145

Scroll

VK_LSHIFT

160


VK_RSHIFT

161


VK_LCONTROL

162


VK_RCONTROL

163


VK_LMENU

164


VK_RMENU

165


VK_BROWSER_BACK

166


VK_BROWSER_FORWARD

167


VK_BROWSER_REFRESH

168


VK_BROWSER_STOP

169


VK_BROWSER_SEARCH

170


VK_BROWSER_FAVORITES

171


VK_BROWSER_HOME

172


VK_VOLUME_MUTE

173

VolumeMute

VK_VOLUME_DOWN

174

VolumeDown

VK_VOLUME_UP

175

VolumeUp

VK_MEDIA_NEXT_TRACK

176


VK_MEDIA_PREV_TRACK

177


VK_MEDIA_STOP

178


VK_MEDIA_PLAY_PAUSE

179


VK_LAUNCH_MAIL

180


VK_LAUNCH_MEDIA_SELECT

181


VK_LAUNCH_APP1

182


VK_LAUNCH_APP2

183


VK_OEM_1

186

; :

VK_OEM_PLUS

187

= +

VK_OEM_COMMA

188


VK_OEM_MINUS

189

- _

VK_OEM_PERIOD

190


VK_OEM_2

191

/ ?

VK_OEM_3

192

` ~

VK_OEM_4

219

[ {

VK_OEM_5

220

\ |

VK_OEM_6

221

] }

VK_OEM_7

222

' "

VK_OEM_8

223


VK_OEM_102

226


VK_PACKET

231


VK_PROCESSKEY

229


VK_ATTN

246


VK_CRSEL

247


VK_EXSEL

248


VK_EREOF

249


VK_PLAY

250


VK_ZOOM

251


VK_NONAME

252


VK_PA1

253


VK_OEM_CLEAR

254


 


ASCII码

键盘

ASCII 码

键盘

ASCII 码

键盘

ASCII 码

键盘

27

ESC

32

SPACE

33

!

34

"

35

#

36

$

37

%

38

&

39

'

40

(

41

)

42

*

43

+

44

'

45

-

46

.

47

/

48

0

49

1

50

2

51

3

52

4

53

5

54

6

55

7

56

8

57

9

58

:

59

;

60

61

=

62

63

?

64

@

65

A

66

B

67

C

68

D

69

E

70

F

71

G

72

H

73

I

74

J

75

K

76

L

77

M

78

N

79

O

80

P

81

Q

82

R

83

S

84

T

85

U

86

V

87

W

88

X

89

Y

90

Z

91

[

92

\

93

]

94

^

95

_

96

`

97

a

98

b

99

c

100

d

101

e

102

f

103

g

104

h

105

i

106

j

107

k

108

l

109

m

110

n

111

o

112

p

113

q

114

r

115

s

116

t

117

u

118

v

119

w

120

x

121

y

122

z

123

{

124

|

125

}

126

~



微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python