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