单击鼠标事件后出现奇怪的鼠标行为

用户名

我正在使用Vb2010和Windows7。
我正在尝试创建一个单击另一个进程的程序,但是在单击和单击鼠标事件时遇到了一些麻烦。
实际上,当我右击然后单击鼠标时,鼠标的行为会很奇怪:左击和右击似乎会互换,因为左击会打开菜单,而右击却无能为力。
使它恢复正常的唯一方法是在物理上单击鼠标右键,然后单击鼠标左键,但是我需要程序自动执行此操作。有任何修复或解决方法吗?谢谢。

要重现此问题,可以在vb.net中创建一个带有button1的表单,然后粘贴此代码(然后运行调试并单击该按钮),或者可以从此处下载已编译的程序

Public Class Form1
Private Declare Sub mouse_event Lib "user32" (ByVal dwflags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cbuttons As Integer, ByVal dwextrainfo As Integer)
Private Const mouseclickdown = 2
Private Const mouseclickup = 4
Private Const rightclickdown = 8
Private Const rightclickup = 10

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    System.Threading.Thread.Sleep(200)
    Cursor.Position = New Point(650, 350)
    System.Threading.Thread.Sleep(200)
    mouse_event(rightclickdown, 0, 0, 0, 0)
    System.Threading.Thread.Sleep(200)
    mouse_event(rightclickup, 0, 0, 0, 0)
    System.Threading.Thread.Sleep(200)
    Cursor.Position = New Point(500, 200)
    System.Threading.Thread.Sleep(200)
    mouse_event(mouseclickdown, 0, 0, 0, 0)
    System.Threading.Thread.Sleep(200)
    mouse_event(mouseclickup, 0, 0, 0, 0)
    System.Threading.Thread.Sleep(200)
End Sub
End Class
斯卡

rightclickup应该具有0x0010(来源:http : //msdn.microsoft.com/en-us/library/windows/desktop/ms646260 (v= vs.85 ) .aspx的值,十六进制为10。十进制为16。

Public Class Form1
Private Declare Sub mouse_event Lib "user32" (ByVal dwflags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cbuttons As Integer, ByVal dwextrainfo As Integer)
Private Const mouseclickdown = 2
Private Const mouseclickup = 4
Private Const rightclickdown = 8
Private Const rightclickup = 16

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    System.Threading.Thread.Sleep(200)
    Cursor.Position = New Point(650, 350)
    System.Threading.Thread.Sleep(200)
    mouse_event(rightclickdown, 0, 0, 0, 0)
    System.Threading.Thread.Sleep(200)
    mouse_event(rightclickup, 0, 0, 0, 0)
    System.Threading.Thread.Sleep(200)
    Cursor.Position = New Point(500, 200)
    System.Threading.Thread.Sleep(200)
    mouse_event(mouseclickdown, 0, 0, 0, 0)
    System.Threading.Thread.Sleep(200)
    mouse_event(mouseclickup, 0, 0, 0, 0)
    System.Threading.Thread.Sleep(200)
End Sub
End Class

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

轨迹栏鼠标移动事件的奇怪行为

来自分类Dev

轨迹栏鼠标移动事件的奇怪行为

来自分类Dev

鼠标单击事件后刷新绘图

来自分类Dev

鼠标事件单击问题

来自分类Dev

用户单击重试后,每次单击多次触发鼠标事件

来自分类Dev

ListBox鼠标左键单击事件

来自分类Dev

鼠标悬停后单击

来自分类Dev

单击后更改鼠标位置

来自分类Dev

向鼠标射击的行为很奇怪 - Java

来自分类Dev

鼠标单击时将调用D3函数(奇怪的行为)

来自分类Dev

将鼠标悬停在TEXTAREA或A对象上时会出现奇怪的CSS / JavaScript行为

来自分类Dev

鼠标单击并按住事件?

来自分类Dev

套接字io鼠标单击事件

来自分类Dev

如何创建鼠标单击事件序列

来自分类Dev

单击鼠标时未调用PreviewMouseLeftButtonUp事件

来自分类Dev

通过形状传递鼠标单击事件

来自分类Dev

如何打破鼠标单击事件的循环

来自分类Dev

鼠标单击位置周围出现的按钮

来自分类Dev

Webkit错误:鼠标事件中出现元素

来自分类Dev

Webkit错误:鼠标事件中出现元素

来自分类Dev

单击鼠标后在JPanel上绘制圆圈

来自分类Dev

单击鼠标后QtCreator滚动跳转

来自分类Dev

释放鼠标单击后如何倒数

来自分类Dev

单击鼠标左键后显示文本

来自分类Dev

Shift键和鼠标的奇怪滚动行为

来自分类Dev

Shift键和鼠标的奇怪滚动行为

来自分类Dev

沿屏幕右边缘的奇怪鼠标指针行为 Ubuntu 19.10

来自分类Dev

单击表单下方的元素的鼠标单击触发事件

来自分类Dev

如何区分滚轮单击事件和鼠标按下事件?