65.9K
CodeProject is changing. Read more.
Home

VBScript - Count Instances of a Process

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0 vote)

Oct 18, 2012

CPOL
viewsIcon

25575

downloadIcon

123

Determine how many instances are currently running from a specified process.

Introduction

It can be useful sometimes to know how many instances of a process are running at a time, for instance, to prevent a second instance of your VBScript being triggered. I created a short tip on how to get it to work as desired!

Using the code 

The code is in VBScript. VBScript is processed by "wscript.exe" (runtime compiler). To use it, create a 'New Text Document', rename it to 'myVBScript.vbs'. If you are not able to rename your files onto a file with another file-extension, you first have to enable it. For this go to 'My Computer' or to any open folder and click on it and then select above on the main tab , 'Tools', 'Folder Options...', 'View', and finally uncheck the option called 'Hide extension for known file types'.

Option Explicit
Dim objWMIService, objProcess, colProcess, strComputer, processName, instances

strComputer = "."
instances = 0
processName = "firefox.exe" 

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")

Set colProcess = objWMIService.ExecQuery _
("Select * from Win32_Process")

For Each objProcess in colProcess
If objProcess.Name = processName Then instances = instances + 1
Next

If processName = "wscript.exe" Then 
	If instances = 1 Then
	WScript.Echo "There is no other VBScript running except this one!"
	Else
	WScript.Echo "There are currently " & "(" & instances _
	   & ") " & "VBScript" & " Instances running!"
	End If
Else
	WScript.Echo "There are currently " & "(" & instances & ") " & _
	        """" & processName & """" & " Instances running!"
End If