VB代码求助;不能后台,鼠标模拟后台!
vb吧
全部回复
仅看楼主
level 3
陶飞Mt 楼主
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Sub Command1_Click()
Dim ipCiassName As String, ipWindowName As String, hWndX As Long
ipCiassName = "*****"
ipWindowName = "*****"
hWndX = FindWindow(vbNullString, ipWindowName) '这里成需要模拟程序的程序名
If hWndX <> 0 Then
Label1.Caption = "运行游戏"
Else
Label1.Caption = "没找到游戏"
End If
'获取游戏窗口句柄
Dim wMsg As Long, wParam As Long, iParam As Long, Rx As Long, xx As Integer, yy As Integer
xx = 592
yy = 536
wMsg = WM_LBUTTONDOWN '左键按下消息
wParam = 1
lParam = yy * 65536 + xx
Call PostMessage(hWndX, wMsg, wParam, lParam) '发送消息
Sleep 300
wMsg = WM_LBUTTONUP '左键抬起消息
wParam = 1
lParam = yy * 65536 + xx
Call PostMessage(hWndX, wMsg, wParam, lParam) '发送消息
End Sub
取点的坐标好象错了,我点按纽后,鼠标最后从哪出窗口的,鼠标点击出先在那!坐标不知道怎么搞了,谁帮我下!
2012年08月03日 14点08分 1
level 3
陶飞Mt 楼主
只是取点错了,能后台点击,高手来看下坐标咋了!
2012年08月03日 14点08分 2
level 14
游戏是不使用消息的,PostMessage对游戏无效。模拟鼠标只能用mouse_event,模拟键盘只能keybd_event,模拟手柄的我不知道。在Win7下大多数游戏都会强制获得管理员权限。
2012年08月03日 14点08分 3
所以模拟事件的程序也必须获得管理员权限,在生成文件时,把初始名称设为Setup.exe,生成后再把文件名改为你想要的就行了,运行时就会强制获得管理员权限。
2012年08月03日 14点08分
level 11
我也想求解!关于后台按键的
2013年12月02日 08点12分 4
1