VB代码可设置光标位置和鼠标单击

时间:2019-07-16 04:10:42

标签: visual-studio

过去,过去曾经有一些应用程序会在屏幕上的特定位置单击鼠标。这些位置是简单的输入文件,其中列出了X和Y坐标,并会经过这些行并单击屏幕上应有的每个位置。

我在VB6中写了一篇使用得很好的作品:

Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
to set the X & Y coordinates for the mouse_event

mouse_event MOUSEEVENTF_LEFTDOWN, x, y, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, x, y, 0, 0

它叫:

  

公共声明Sub mouse_event Lib“ user32”别名“ mouse_event”(ByVal   dwFlags作为整数,ByVal dx作为整数,ByVal dy作为整数,ByVal   cButtons为整数,ByVal dwExtraInfo为整数)

,然后点击它应该在的位置。

我正在尝试使用当前的编译器(在我的情况下为vb2010)进行重写。我已经完成搜索,并看到了仍在使用

的左键单击的代码示例
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)

致电:

  

公共声明Sub mouse_event Lib“ user32”别名“ mouse_event”(ByVal   dwFlags作为整数,ByVal dx作为整数,ByVal dy作为整数,ByVal   cButtons为整数,ByVal dwExtraInfo为整数)

在通话中将X和Y设置为100:

mouse_event(MOUSEEVENTF_LEFTDOWN, 100, 100, 0, 0)
mouse_event(MOUSEEVENTF_LEFTUP, 100, 100, 0, 0)

我认为点击和释放将从屏幕左上角开始超过100,向下超过100。

这不会发生,通过鼠标移动鼠标所处的位置就是单击和释放的位置。我尝试在up和up之间放置一个threading.thread.sleep(100),以防万一它发生得太快,但没有区别。如何设置鼠标单击的位置,如VB6中的SetCursorPos?我确实在2010年尝试过使用SetCursorPos函数,但没有碰到运气。

这将在应用程序外部单击,或者我将使用其他方法,例如单击按钮对象或类似方法。我已经将代码放入计时器中并增加了一个按钮计数器,所以我知道点击部分的工作方式与我想要的一样,我只是无法控制点击发生的位置。

0 个答案:

没有答案