问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在VB中怎么用keybd_event函数模拟按下并弹起F1 ?

发布网友 发布时间:2023-07-19 18:46

我来回答

2个回答

热心网友 时间:2024-01-22 00:43

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

热心网友 时间:2024-01-22 00:43

Public Class Form1

Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As ULong, _
ByVal dwExtraInfo As ULong)

Const KEYEVENTF_KEYUP = &H2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Focus()
keybd_event(Keys.B, 0, 0, 0)
keybd_event(Keys.B, 0, KEYEVENTF_KEYUP, 0)
End Sub

End Class

只要把keys.B改成keys.f1就可以了,

keybd_event(Keys.f1, 0, 0, 0) '这是键按下
keybd_event(Keys.f1, 0, KEYEVENTF_KEYUP, 0) '这是弹起

因为我用一个textbox来显示按键结果,按f1的话可能没效果所以我就改用B键了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有内味了是什么意思 有内味了梗的出处 苏州鸿达机械设备有限公司怎么样? 什么是龙门加工中心? 东莞市特力精密夹具有限公司怎么样 上海靖和机芯怎么样? 主持人元旦晚会开场白 打篮球脚为什么会抽筋 《歌舞青春》开头他们打篮球唱的歌叫什么? 《歌舞青春》第一部中盖比瑞拉和特洛伊第一次相遇唱的歌是什么? 轻触开关的机械原理是什么 三星花苑二期怎么样?好不好?值不值得买? 水银台式血压计最高刻度是多少 铁锅煮的杨梅还能吃吗 按摩店要交税怎么算 足浴工资15000要交多少税 山高水长对什么诗句 百度宝丽金有哪些金曲 都洗尽的上一句都洗尽的上一句是什么 杰瑞绘画日记 / 喂奶被咬到流泪,但他熟睡的样子又治愈了我 静安别墅装修公司有没有做独栋别墅装修的? 上海徐汇区独栋别墅设计装修公司有哪些? 在成都别墅连排独栋外墙装修工程公司哪家承包做的好啊? 独栋别墅装修公司如何选独栋别墅装修注意事项 中国六部九卿是什么? 晚上七点半到几点六个小时啊 早上七点半到中午l0点几个小时 异地离职医保个人账户怎么办 求教:国产集成稳压器xwy0003 CW78XX和XW79XX系列组成的双电源 集成稳压器的典型VDROP的原理分析... 激光切割机配套稳压器品牌是哪个? VB.net keybd_event函数怎么用 求一个完整的用VB写的模拟按一个按键的程序(比如按“A”键) 大寒是几九了 VC keybd_event 函数怎麼输出‘_’? 求漫画 恩将仇报 跪求迷羊漫画《恩将仇报》要全噢~ ...事情很少空闲很多,想找一个兼职,坐在办公室也能赚钱,不知道谁能帮... 在银行不办业务也可以在那里坐着吗? 天龙八部7级打孔哪里出的机率打 玉泽东方是李玉刚的吗 白梦妍的父母是干什么的啊 电脑中本地连接出现受限制或者无连接问题的解决方法 英语作文,从能量循环的角度来分析人类和白鹿的异同点 公司局网,新装的系统 提示本地连接受限制或无连接,网线,网卡都没问题... 新超越极限上古魔神在哪 酷狗朋友圈2人在听是实时的吗 ...一块机械表,戴在手上不一会就停了,可是放在桌子上不动他就走拿起来... 给想养猫的人说几句话 刚买的手表戴在手上就停了,放在桌子上就转了,这是怎么回事啊,该怎么... 机械秒表掉在地上,停不下来了,一直走什么原因