VB写一个自动结束游戏进程的功能

我朋友的儿子十一岁,迷上了DNF游戏,于是我想用VB写一下这样子的功能,
就是当开起DNF游戏一分钟后的时候,提示游戏错误,确定后,自动结束DNF游戏的进程,请问一下这样子的功能要如何写呢???

VB 结束指定进程

Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * 1024
End Type

Private Type MODULEENTRY32
dwSize As Long
th32ModuleID As Long
th32ProcessID As Long
GlblcntUsage As Long
ProccntUsage As Long
modBaseAddr As Byte
modBaseSize As Long
hModule As Long
szModule As String * 256
szExePath As String * 1024
End Type

Private Const TH32CS_SNAPHEAPLIST = &H1
Private Const TH32CS_SNAPPROCESS = &H2
Private Const TH32CS_SNAPTHREAD = &H4
Private Const TH32CS_SNAPMODULE = &H8

Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long

Sub KillExe(EXEName As String)
Dim my As PROCESSENTRY32
Dim hProcessHandle As Long
Dim success As Long
Dim l As Long

l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
If l Then
my.dwSize = 1060
If (Process32First(l, my)) Then
Do
If UCase$(Right$(Left$(my.szExeFile, InStr(1, my.szExeFile, Chr$(0)) - 1), Len(EXEName))) = UCase$(EXEName) Then
hProcessHandle = OpenProcess(&H1F0FFF, True, my.th32ProcessID)
If hProcessHandle <> 0 Then success = TerminateProcess(hProcessHandle, ByVal 0&)
If success = 1 Then CloseHandle (hProcessHandle)
End If
Loop Until (Process32Next(l, my) < 1)
End If
CloseHandle l
End If

End Sub

调用方法

KillExe "c:\windows\notepad.exe"
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-07-27
楼上诸位的程序都太麻烦了!直接这样即可中止进程,不需要使用任何API:

Msgbox "运行错误: 该内存不能为read.",msgbox "",vbCritical,""
Shell "Taskkill /im " & DNF游戏源文件名称 & " /f"
第2个回答  2009-07-27
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options位置写入dnf.exe 用ntsd.exe -d劫持即可,效果是画面一闪而过(没有错误提示),但是既方便又隐蔽,用vb写的程序可能会被结束而失效
第3个回答  2009-07-27
用一个API函数来获取游戏句柄,然后再这人句柄发送关闭命令,不出源码,还不懂请致信[email protected],再发源码吧,不过还是希望你具体了解下这两个API函数就可以了
相似回答
大家正在搜