VB鼠标单击后台运行进程

时间:2018-01-18 21:43:07

标签: vb.net click mouse

我正在制作一个运行另一个进程(窗口游戏)的VB应用程序。我的应用程序充当该游戏的宏。

我很难让鼠标点击工作,虽然我在后台发送密钥的代码非常好(如果需要可以提供)。

我指的是在后台进入特定位置的程序,这意味着当鼠标点击动作时我可以浏览互联网或玩另一个游戏。

我收到一条错误消息:指定的演员表无效。

错误在InputPressRightMouse Sub上,其中:

PostMessage(Handle,WM_RBUTTONDOWN,1,coord)

Private Const WM_RBUTTONDOWN As System.UInt32 = &H204
Private Const WM_RBUTTONUP As System.UInt32 = &H205

Dim coord = MakeDWord(-220, 85)

Private Function MakeDWord(ByVal LoWord As Integer, ByVal HiWord As Integer) As Long
    MakeDWord = (HiWord * &H10000) Or (LoWord And &HFFFF&)
End Function

<System.Runtime.InteropServices.DllImport("user32.dll")>
Public Shared Function PostMessage(<System.Runtime.InteropServices.In()> ByVal hWnd As System.IntPtr, <System.Runtime.InteropServices.In()> ByVal Msg As System.UInt32, <System.Runtime.InteropServices.In()> ByVal wParam As System.IntPtr, <System.Runtime.InteropServices.In()> ByVal lParam As System.UIntPtr) As System.Boolean
End Function

Public Sub InputPressKey(ByVal Handle As System.IntPtr, ByVal Key As System.Windows.Forms.Keys)
    PostMessage(Handle, WM_KEYDOWN, CType(Key, System.IntPtr), CType(WM_KEYDOWNLPARAM, System.UIntPtr))
End Sub
Public Sub InputReleaseKey(ByVal Handle As System.IntPtr, ByVal Key As System.Windows.Forms.Keys)
    PostMessage(Handle, WM_KEYUP, CType(Key, System.IntPtr), CType(WM_KEYUPLPARAM, System.UIntPtr))
End Sub

Public Sub InputPressRightMouse(ByVal Handle As System.IntPtr, ByVal Mouse As System.Windows.Forms.MouseButtons)
    PostMessage(Handle, WM_RBUTTONDOWN, 1, coord)
End Sub

执行鼠标点击的代码:

    InputPressRightMouse(Process.MainWindowHandle, System.Windows.Forms.MouseButtons.Right)

发送密钥的代码(有效)

InputPressKey(Process.MainWindowHandle, System.Windows.Forms.Keys.V)

有人可以帮助我在这里做错了吗?

0 个答案:

没有答案