VBScript和sendkeys不适用于DirectX?
我在玩GTA SA:MP。它使用DirectX,如果你在服务器上是AFK,你会自动被踢,我想在我离开时让它在服务器上AFK。 我尝试创建一个VBScript,在8分钟后自动按W键,然后循环,但实际上它不起作用。球员一动不动 代码: 有什么想法吗?SendKeys方法会向活动窗口发送一个或多个按键。首先使用AppActivate方法激活应用程序窗口 该脚本是您的脚本的简化版本,没有8分钟循环和notepad.exe代替您的应用程序名VBScript和sendkeys不适用于DirectX?,vbscript,directx,sendkeys,Vbscript,Directx,Sendkeys,我在玩GTA SA:MP。它使用DirectX,如果你在服务器上是AFK,你会自动被踢,我想在我离开时让它在服务器上AFK。 我尝试创建一个VBScript,在8分钟后自动按W键,然后循环,但实际上它不起作用。球员一动不动 代码: 有什么想法吗?SendKeys方法会向活动窗口发送一个或多个按键。首先使用AppActivate方法激活应用程序窗口 该脚本是您的脚本的简化版本,没有8分钟循环和notepad.exe代替您的应用程序名 option explicit On Error Goto 0
option explicit
On Error Goto 0
Dim antiafk
set antiafk=createobject("wscript.shell")
Dim lngPID, booSuccess, foo
lngPID = getlngPID()
If lngPID = 0 Then
foo = antiafk.Popup( "No instance found", 5, _
"29445451", vbOKOnly + vbCritical)
Else
booSuccess = antiafk.AppActivate( lngPID)
If not booSuccess Then
foo = antiafk.Popup( "AppActivate Method unsuccesfull", 5, _
"29445451", vbOKOnly + vbExclamation)
Else
antiafk.sendkeys "w"
End If
End If
Function getLngPID()
getLngPID = 0
Dim strComputer
Dim objWMIService, colProcessList, objProcess
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'Notepad.exe'")
'find appropriate and suitable Process ID
For Each objProcess in colProcessList
getLngPID = objProcess.ProcessId
Next
End Function
在执行此操作之前,您可能需要检查EULA,因为许多游戏中不允许使用AFK宏。
option explicit
On Error Goto 0
Dim antiafk
set antiafk=createobject("wscript.shell")
Dim lngPID, booSuccess, foo
lngPID = getlngPID()
If lngPID = 0 Then
foo = antiafk.Popup( "No instance found", 5, _
"29445451", vbOKOnly + vbCritical)
Else
booSuccess = antiafk.AppActivate( lngPID)
If not booSuccess Then
foo = antiafk.Popup( "AppActivate Method unsuccesfull", 5, _
"29445451", vbOKOnly + vbExclamation)
Else
antiafk.sendkeys "w"
End If
End If
Function getLngPID()
getLngPID = 0
Dim strComputer
Dim objWMIService, colProcessList, objProcess
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'Notepad.exe'")
'find appropriate and suitable Process ID
For Each objProcess in colProcessList
getLngPID = objProcess.ProcessId
Next
End Function