|
-
Sep 24th, 2006, 03:26 PM
#1
Thread Starter
Addicted Member
Terminating A Process And Deleting It
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?
-
Sep 24th, 2006, 06:42 PM
#2
Hyperactive Member
Re: Terminating A Process And Deleting It
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")
Last edited by StreaksAthlete; Sep 24th, 2006 at 06:46 PM.
Unity Programs™ - Downloads To Make Your Computer Life Easier - UnityPrograms.com, check it out
My small company, I need feedback.
If someone's post was useful, don't forget to Rate It by clicking the Rate This Post link under the avatar.
If this post has been resolved. Please mark it as Resolved by going through the Thread Tools above and clicking on the Mark Thread Resolved option.
We ride together, We die together, .NET for life. - Working With Visual Studio.NET 2005
Application Deployment, General Developer Forum, Visual Basic .NET
-
Sep 25th, 2006, 09:25 AM
#3
Thread Starter
Addicted Member
Re: Terminating A Process And Deleting It
-
Sep 25th, 2006, 09:56 AM
#4
Hyperactive Member
Re: Terminating A Process And Deleting It
 Originally Posted by Gunner54
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:
Last edited by Fedhax; Sep 25th, 2006 at 10:33 AM.
Reason: VB Code Correction
-
Sep 25th, 2006, 10:06 AM
#5
Thread Starter
Addicted Member
Re: Terminating A Process And Deleting It
-
Sep 25th, 2006, 10:10 AM
#6
Re: Terminating A Process And Deleting It
 Originally Posted by Gunner54
You don't need the "Call" and you need to know the path to virus.exe.
-
Sep 25th, 2006, 10:13 AM
#7
Thread Starter
Addicted Member
Re: Terminating A Process And Deleting It
btw what if i put when their hard drive is -> but i didnt know?
in other words if i made it but on someone elses PC they didnt have a they had a would it still work?
-
Sep 25th, 2006, 10:28 AM
#8
Re: Terminating A Process And Deleting It
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.
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum. 
Microsoft MVP 2006-2011
Office Development FAQ (C#, VB.NET, VB 6, VBA)
Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
If a post has helped you then Please Rate it! 
• Reps & Rating Posts • VS.NET on Vista • Multiple .NET Framework Versions • Office Primary Interop Assemblies • VB/Office Guru™ Word SpellChecker™.NET • VB/Office Guru™ Word SpellChecker™ VB6 • VB.NET Attributes Ex. • Outlook Global Address List • API Viewer utility • .NET API Viewer Utility •
System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6 
-
Sep 25th, 2006, 01:01 PM
#9
Thread Starter
Addicted Member
Re: Terminating A Process And Deleting It
................... :S i do not understans XD ok i think i will be fine
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|