' Папки разных TC, у меня папки разные
TC64 = "E:\totalcmd64\TOTALCMD64.EXE"
TC86 = "E:\totalcmd86\Totalcmd.exe"
Set WSS = CreateObject("Wscript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcess86 = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & FSO.GetFileName(TC86) & "'")
Set colProcess64 = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & FSO.GetFileName(TC64) & "'")
' MsgBox "TC x86 = " & colProcess86.Count & vbLF & "TC x64 = " & colProcess64.Count, 64, "Info"
' Если есть запущенные процессы TC x86, то все их закрываем (а не убиваем)
' и запускаем один новый процесс TC x86
Restart TC86, colProcess86
' Если есть запущенные процессы TC x64, то все их закрываем (а не убиваем)
' и запускаем один новый процесс TC x64
Restart TC64, colProcess64
WScript.Quit
Sub Restart(ts, colProcessList)
If colProcessList.Count <> 0 Then
For Each objProcess in colProcessList
WScript.Sleep 100
WSS.Run "taskkill /PID " & objProcess.ProcessID, 0
Next
WScript.Sleep 400
WSS.Run "" & ts & ""
WScript.Sleep 400
End If
End Sub |