重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、将窗口的KeyPreview属性设置为True
成都创新互联公司是一家以网络技术公司,为中小企业提供网站维护、网站设计制作、成都做网站、网站备案、服务器租用、空间域名、软件开发、微信平台小程序开发等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站欢迎联系:18982081108
Me.KeyPreview = True
2、处理窗口的KeyDown事件
Sub MainFormKeyDown(sender As Object, e As KeyEventArgs)
Select Case e.KeyCode
Case Keys.Escape
Me.button1.PerformClick
Case Keys.Enter
Me.button2.PerformClick
End Select
End Sub
这是不可能完成的任务,.NET平台不存在开发驱动的能力,你要想在驱动层对键盘操作,最好使用C,C++来实现,比较方便。 像现在一些比较出名的网络游戏,都是在驱动层进行保护的。
微软的DirectInput是基于硬件底层,可以在窗口无焦点时捕捉按键,有兴趣可以去了解了解,在游戏制作方面很有用。
DirectX SDK 中文版,里面有关于DirectInput的介绍与用法。
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
If Asc(0) Then
textbox1.text="0"
end if
end sub
最简单的加速运动示例,直接拷贝代码,即可用方向键控制控件移动
Public Class 最简单的加速运动
Dim 左右, 上下 As Integer
Dim X, Y, VX, VY, VA As Double
Dim WithEvents 时钟 As New Timer
Dim WithEvents 移动控件 As New Label
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.KeyPreview = True
VA = 0.5
X = 300.0
Y = 300.0
移动控件.BackColor = Color.MediumPurple
移动控件.Size = New Size(60, 60)
Controls.Add(移动控件)
时钟.Interval = 25
时钟.Enabled = True
End Sub
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.Up Then 上下 = -1
If e.KeyCode = Keys.Down Then 上下 = 1
If e.KeyCode = Keys.Left Then 左右 = -1
If e.KeyCode = Keys.Right Then 左右 = 1
End Sub
Private Sub Form1_KeyUp(sender As Object, e As KeyEventArgs) Handles MyBase.KeyUp
If e.KeyCode = Keys.Up Then 上下 = 0
If e.KeyCode = Keys.Down Then 上下 = 0
If e.KeyCode = Keys.Left Then 左右 = 0
If e.KeyCode = Keys.Right Then 左右 = 0
End Sub
Private Sub 时钟_Tick(sender As Object, e As EventArgs) Handles 时钟.Tick
VX = Math.Min(VX + 左右 * VA, 10)
VY = Math.Min(VY + 上下 * VA, 10)
X += VX
Y += VY
If X 0 Then X = 2 : VX = -VX
If Y 0 Then Y = 2 : VY = -VY
If X Width - 移动控件.Width Then X = Width - 移动控件.Width - 2 : VX = -VX
If Y Height - 移动控件.Height Then Y = Height - 移动控件.Height - 2 : VY = -VY
移动控件.Location = New Point(X, Y)
End Sub
End Class
游戏里用keybd_event一般都是无效的,游戏防御强
如果阁下不想用按键精灵,非要用vb,那也行,在vb里用插件,也方便
我有插件,不管什么游戏都能做操作,自动点击,喊话这些,都不是事儿