我正在使用Visual Basic 6.0(我知道,它已经过时了,但我能说什么呢?我很老式)。我一直试图让一个程序工作,点击按钮后鼠标点击屏幕上的预定点(这不是整个程序将是什么,但我仍在构建它,这是我的障碍)
[System.Runtime.InteropServices.DllImport("user32.dll")]
Private Declare Function mouse_event Lib "user32.dll" Alias "mouse_event()" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Public Function Mouse_LeftClick()
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Function
Private Sub Command1_Click()
Dim X As Long
Dim Y As Long
Dim mouse_x As Long
Dim mouse_y As Long
X = CLng(1285)
Y = CLng(134)
mouse_x = CLng(X * 65535 / Screen.Width)
mouse_y = CLng(Y * 65535 / Screen.Height)
i = mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE, mouse_x, mouse_y, 0, 0)
n = Mouse_LeftClick()
End Sub
Private Sub Command2_Click()
End
End Sub
(这实际上是整个程序到目前为止)
要说清楚,我对此比较陌生,所以这段代码几乎完全来自其他网站。但不幸的是,我已经忘记了那个网站是什么了。
现在,在我第一行(DllImport)之前,VB6告诉我user32.dll中不存在“mouse_event()” - 根据我的理解,它仍然不存在。< / p>
但是,一旦我研究了这个问题,我就找到了DllImport系列,我将它放在互联网告诉我放置它的地方,但现在同一行正在产生这个错误信息:
Compile error:
Invalid outside procedure
......这让我很困惑,因为我从那些真正知道自己在做什么的人那里得到了这些(不管怎么说,我都这么认为)。
无论如何,自从这个程序工作以来已经很久了,我实际上无法记住我最后一次运行它而没有得到一些结束程序的严重错误,所以我转向StackOverflow来告诉我我的意思我的代码完全错了。
提前感谢任何提供帮助的人。
答案 0 :(得分:1)
删除DLLImport内容。它是VB.Net,根本不是VB6。
[System.Runtime.InteropServices.DllImport("user32.dll")]
然后,就像Hans说的那样,从Declare中的别名中删除括号。