鼠标单击正在运行的应用程序内的背景

时间:2018-01-15 15:30:57

标签: vb.net process background click mouse

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

我已经设法编写代码,在不使用appActivate的情况下在后台将键盘输入发送到进程中,但是我很难让鼠标点击工作方式相同。

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

希望我有道理,有人可以让我走上正轨吗?

我用这个代码在背景中将Q字母发送到应用程序:

Public Const WM_KEYDOWNLPARAM As System.UInt32 = &H320001
Public Const WM_KEYUPLPARAM As System.UInt32 = 3224502273

Public Const WM_KEYDOWN As System.Int32 = &H100
Public Const WM_KEYUP As System.Int32 = &H101


<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


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

0 个答案:

没有答案