
正文
vb.net鼠标键盘控制 vb如何控制鼠标
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何在VB.net中用程序控制鼠标移动和点击
调用api
在Visual Baisc.net中的声明:
Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_LEFTDOWN = H2 '模拟鼠标左键按下
Public Const MOUSEEVENTF_LEFTUP = H4 ’模拟鼠标左键释放
Public Const MOUSEEVENTF_MIDDLEDOWN = H20 '模拟鼠标中间键按下
Public Const MOUSEEVENTF_MIDDLEUP = H40 '模拟鼠标中间键释放
Public Const MOUSEEVENTF_RIGHTDOWN = H8 '模拟鼠标右键按下
Public Const MOUSEEVENTF_RIGHTUP = H10 '模拟鼠标右键释放
Public Const MOUSEEVENTF_MOVE = H1 '模拟鼠标指针移动
例:
mouse_event MOUSEEVENTF_LEFTDOWN,10,10,0,0
'在(10,10)模拟鼠标左键按下
相关问答
Q1: VB.NET2013如何控制鼠标在某一坐标点击一下
Imports System.Runtime.InteropServices
DllImport("user32.dll")
Private Shared Function SetCursorPos(ByVal X As Integer, ByVal Y As Integer) As Boolean End Function
DllImport("user32.dll")
Private Shared Sub mouse_event(ByVal flags As MouseEventFlag, ByVal dx As Integer, ByVal dy As Integer, ByVal data As UInteger, ByVal extraInfo As UIntPtr) End Sub
Flags()
Private Enum MouseEventFlag As UInteger
Move = H1
LeftDown = H2
LeftUp = H4
RightDown = H8
RightUp = H10
MiddleDown = H20
MiddleUp = H40
XDown = H80
XUp = H100
Wheel = H800
VirtualDesk = H4000
Absolute = H8000
End Enum
SetCursorPos(intX, intY)mouse_event(MouseEventFlag.LeftDown, intX, intY, 0, UIntPtr.Zero)
mouse_event(MouseEventFlag.LeftUp, intX, intY, 0, UIntPtr.Zero)
Q2: VB.NET:键盘控制焦点移动
; 在数据库的项目中 一定会有输入数据的Form 最令录入人员头痛的就是每填完一个数据后 要再操作鼠标 或者另一只手按一下Tab(不过还是很麻烦) 最人性化呢就是:按回车键(在小键盘内输入只要一只手就可以了) 还可以用方向键控制 第一步:Form的KeyPreview的属性为True 第二步:按照需要把TabIndex按顺序设置 第三步:编写一个方法 代码如下: FocusMove Is Function Name ControlName Is the Control s Name Which you want to use Private Sub FocusMove()Sub FocusMove(ByVal sender As Object ByVal e As System Windows Forms KeyPressEventArgs) Handles ControlName KeyPress ControlName KeyPress If e KeyChar = ChrW( ) Then SelectNextControl is a Function will be introduced next SelectNextControl(sender True True True False) End If End Sub SelectNextControl的说明来自MSDN: 激活下一个控件 [Visual Basic] Public Function SelectNextControl( _ ByVal ctl As Control _ ByVal forward As Boolean _ ByVal tabStopOnly As Boolean _ ByVal nested As Boolean _ ByVal wrap As Boolean _ ) As Boolean [C#] public bool SelectNextControl( Control ctl bool forward bool tabStopOnly bool nested bool wrap ); [C++] public: bool SelectNextControl( Control* ctl bool forward bool tabStopOnly bool nested bool wrap ); [JScript] public function SelectNextControl( ctl : Control forward : Boolean tabStopOnly : Boolean nested : Boolean wrap : Boolean ) : Boolean; 参数 ctl 从其上开始搜索的 Control forward 如果为 true 则在 Tab 键顺序中前移 如果为 false 则在 Tab 键顺序中后移 tabStopOnly true 表示忽略 TabStop 属性设置为 false 的控件 false 表示不忽略 nested true 表示包括嵌套子控件(子控件的子级) false 表示不包括 wrap true 表示在到达最后一个控件之后从 Tab 键顺序中第一个控件开始继续搜索 false 表示不继续搜索 返回值 如果控件已激活 则为 true 否则为 false 备注 如果将控件的 ControlStyles Selectable 样式位设置为 true 该控件包含在另一个控件中 而且其所有父控件都可见并已启用 则 SelectNextControl 方法激活 Tab 键顺序中的下一个控件 下面列表中的 Windows 窗体控件是不可选择的 从该列表中的控件派生的控件也是不可选择的 Label Panel GroupBox PictureBox ProgressBar Splitter LinkLabel(当控件中没有链接时) 要求 平台: Windows Windows NT Windows ME Windows Windows XP Home Edition Windows XP Professional Windows Server 系列 最后要注意的就是TabIndex的设置 如果控件在GroupBox中 那么GroupBox要在TabIndex的顺序中 就是说 如果TextBox 在GroupBox 中 那么GroupBox Index= TextBox Index= 并且在SelectNextControld的参数nested=true 即可 还有一些细节大家在平时使用的时候还要多多注意的 end lishixinzhi/Article/program/net/201311/11492
Q3: VB 怎样用键盘控制鼠标移动?
建议使用mouse_event直接设置相对移动坐标
Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
const MOUSEEVENTF_MOVE = h1'鼠标移动
const MOUSEEVENTF_ABSOLUTE = h8000 '是否采用绝对坐标
需要说明的是,如果没有使用MOUSEEVENTF_ABSOLUTE,函数默认的是相对于鼠标当前位置的点进行移动。
例:
mouse_event MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, 500, 500, 0, 0 '移动绝对坐标到屏幕位置500,500
mouse_event MOUSEEVENTF_MOVE, 130, -50, 0, 0 '鼠标当前位置开始向右移动130,向上移动50
mouse_event MOUSEEVENTF_MOVE, -130, 50, 0, 0 '鼠标当前位置开始向左移动130,向下移动50
Q4: 用VB.NET模拟鼠标和键盘动作?不用API模拟,用API的我会! 用.NET框架的类库怎么模拟呢?
.net框架就是对API就行封装,做成一个个的类然后可以让你轻松调用,但是。net封装的内容,是常用的内容,有些东西用的时候,还是需要调用API函数,自己写,毕竟,微软不知道你要用什么函数,所以尽可能的满足用户大众口味而已。如果你需要用的比较复杂,还是调用API自己写类吧。
希望我的回答对您有所帮助
关于vb.net鼠标键盘控制和vb如何控制鼠标的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





