Код: Выделить всё
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys("%{F4}")
WScript.Sleep 400
WshShell.Run "TOTALCMD.EXE"Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Код: Выделить всё
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys("%{F4}")
WScript.Sleep 400
WshShell.Run "TOTALCMD.EXE"Код: Выделить всё
var
s=new ActiveXObject('WScript.Shell'),
t=s.ExpandEnvironmentStrings('%COMMANDER_EXE%');
s.SendKeys('%{F4}');
WScript.Sleep(2000);
s.Exec(t);
//s.Exec(t+' "'+WScript.Arguments(0)+'" "'+WScript.Arguments(1)+'"');
// это - если передавать скрипту %X "%Z%P" "%Z%T"Код: Выделить всё
with(new ActiveXObject('WScript.Shell')){
sendKeys('%{F4}');
WScript.Sleep(2000);
exec(expandEnvironmentStrings('%COMMANDER_EXE%'));
// exec(expandEnvironmentStrings('%COMMANDER_EXE%')+' "'+
// WScript.Arguments(0)+'" "'+WScript.Arguments(1)+'"');
}После посыла команды закрытия окна нужно делать задержку (0.2...1.0 сек) перед следующим запуском ТСSkif_off писал(а):Strek
Нет ли проблем при перезапуске? Использую нескомпилированный скрипт (дополненный) - иногда нажимаю, ТС закрывается, но новая копия не открывается. Наверное, надо прикручивать проверку.
Код: Выделить всё
' Папки разных 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Сомнительная задачка. К чему она?gora писал(а):Код: Выделить всё
Если есть запущенные процессы TC x-/-, то все их закрываем
И если exe какой-то копии переименован, тады чего?gora писал(а):Код: Выделить всё
Where Name = '" & FSO.GetFileName(TC86) & "'"
Это цитата не из меня. У меня там очень точно, мухи отдельно, котлеты отдельно. Постарайтесь цитировать без искажений о обобщений.Flasher писал(а):Сомнительная задачка. К чему она?gora писал(а):Код: Выделить всё
Если есть запущенные процессы TC x-/-, то все их закрываем
Тут важно читать следующее:Flasher писал(а):И если exe какой-то копии переименован, тады чего?gora писал(а):Код: Выделить всё
Where Name = '" & FSO.GetFileName(TC86) & "'"
1 И ни какие общие варианты я не рассматривал.gora писал(а):Папки разных TC, у меня папки разные
Раз про точность заговорили, "не из меня" или "не из моего кода"? "о обобщений" - это как?gora писал(а):Это цитата не из меня. У меня там очень точно, мухи отдельно, котлеты отдельно. Постарайтесь цитировать без искажений о обобщений.
Это я прочёл сразу, суть моего вопроса от этого не пострадала.gora писал(а):Тут важно читать следующее:
Да ну? А перебор в цикле с завершением всех запущенных процессов с тем же именем?gora писал(а):1 И ни какие общие варианты я не рассматривал.