Ok i want to make a program that detects a process e.g: "virus.exe" and it killis it and then deletes it from the computer.
But the big question is HOW?
Printable View
Ok i want to make a program that detects a process e.g: "virus.exe" and it killis it and then deletes it from the computer.
But the big question is HOW?
To Kill the Process; First, Paste this code into A Module:
VB Code:
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 * 260 End Type '------------------------------------------------------- Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, _ ByVal blnheritHandle As Long, ByVal dwAppProcessId As Long) As Long Declare Function ProcessFirst Lib "kernel32.dll" Alias "Process32First" (ByVal hSnapshot As Long, _ uProcess As PROCESSENTRY32) As Long Declare Function ProcessNext Lib "kernel32.dll" Alias "Process32Next" (ByVal hSnapshot As Long, _ uProcess As PROCESSENTRY32) As Long Declare Function CreateToolhelpSnapshot Lib "kernel32.dll" Alias "CreateToolhelp32Snapshot" ( _ ByVal lFlags As Long, lProcessID As Long) As Long Declare Function TerminateProcess Lib "kernel32.dll" (ByVal ApphProcess As Long, _ ByVal uExitCode As Long) As Long Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long '------------------------------------------------------- Public Sub KillProcess(NameProcess As String) Const PROCESS_ALL_ACCESS = &H1F0FFF Const TH32CS_SNAPPROCESS As Long = 2& Dim uProcess As PROCESSENTRY32 Dim RProcessFound As Long Dim hSnapshot As Long Dim SzExename As String Dim ExitCode As Long Dim MyProcess As Long Dim AppKill As Boolean Dim AppCount As Integer Dim i As Integer Dim WinDirEnv As String If NameProcess <> "" Then AppCount = 0 uProcess.dwSize = Len(uProcess) hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&) RProcessFound = ProcessFirst(hSnapshot, uProcess) Do i = InStr(1, uProcess.szexeFile, Chr(0)) SzExename = LCase$(Left$(uProcess.szexeFile, i - 1)) WinDirEnv = Environ("Windir") + "\" WinDirEnv = LCase$(WinDirEnv) If Right$(SzExename, Len(NameProcess)) = LCase$(NameProcess) Then AppCount = AppCount + 1 MyProcess = OpenProcess(PROCESS_ALL_ACCESS, False, uProcess.th32ProcessID) AppKill = TerminateProcess(MyProcess, ExitCode) Call CloseHandle(MyProcess) End If RProcessFound = ProcessNext(hSnapshot, uProcess) Loop While RProcessFound Call CloseHandle(hSnapshot) End If End Sub
THEN put this code in the event you want to kill the process:
VB Code:
KillProcess ("virus.exe")
dose this delete it to?
No, it only terminates the process. It does not delete the file with it. You would need to use the KILL function if you wanted to delete the file after it has been terminated:Quote:
Originally Posted by Gunner54
VB Code:
Kill sFileName
so i do
VB Code:
Call Kill "virus.exe"
You don't need the "Call" and you need to know the path to virus.exe.Quote:
Originally Posted by Gunner54
btw what if i putwhen their hard drive is ->VB Code:
Kill "C:\virus.exe"but i didnt know?Code:D:\
in other words if i made itbut on someone elses PC they didnt have aVB Code:
Kill "C:\virus.exe"they had aCode:C:\
would it still work?Code:D:\
You need to get the file and path location of the running process. Then you can kill it after its terminated. I think its the .ModuleName property of the process that contains the full path and filename.
................... :S i do not understans XD ok i think i will be fine