Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Рестарт/перезапуск TC
Goto page Previous  1, 2, 3 ... 5, 6, 7 ... 10, 11, 12  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
mrmerak



Joined: 20 Aug 2007
Posts: 441

Post (Separately) Posted: Fri Oct 18, 2013 15:05    Post subject: Reply with quote

Народ, а кто может мой простенький vbs-скрипт переделать, чтобы он был универсальный для х32 и х64

Code:
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys("%{F4}")
WScript.Sleep 400
WshShell.Run "TOTALCMD.EXE"

_________________
TC 9.51 | Win10 1903
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1236

Post (Separately) Posted: Fri Oct 18, 2013 19:24    Post subject: Reply with quote

Strek wrote:
У меня exe-шка на AutoIt, с таким кодом:

В выложенном примере из х64 ТС запускается х32 и наоборот. А зачем полные пути, если можно поместить файл в корень папки ТС и использовать относительные пути Run(@ScriptDir & "\TOTALCMD.EXE") для портативности?
Back to top
View user's profile Send private message
Strek



Joined: 17 Oct 2010
Posts: 197

Post (Separately) Posted: Fri Oct 18, 2013 20:04    Post subject: Reply with quote

Skif_off wrote:
использовать относительные пути Run(@ScriptDir & "\TOTALCMD.EXE") для портативности?

Согласен. Просто пока не было нужды в портативности. Но за совет спасибо.
Back to top
View user's profile Send private message
Serge Yolkin



Joined: 25 Jul 2009
Posts: 664

Post (Separately) Posted: Fri Oct 18, 2013 21:15    Post subject: Reply with quote

mrmerak
%COMMANDER_EXE% ?

Добавлено спустя 54 минуты:

На JS будет так:
Code:
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"
на бейсике примерно также, но я его дня три изучаю.

Добавлено спустя 18 минут:

или ещё короче:
Code:
with(new ActiveXObject('WScript.Shell')){
  sendKeys('%{F4}');
  WScript.Sleep(2000);
  exec(expandEnvironmentStrings('%COMMANDER_EXE%'));
  // exec(expandEnvironmentStrings('%COMMANDER_EXE%')+' "'+
  //  WScript.Arguments(0)+'" "'+WScript.Arguments(1)+'"');
}
Back to top
View user's profile Send private message
mrmerak



Joined: 20 Aug 2007
Posts: 441

Post (Separately) Posted: Sat Oct 19, 2013 10:35    Post subject: Reply with quote

Serge Yolkin
работает!
_________________
TC 9.51 | Win10 1903
Back to top
View user's profile Send private message
Serge Yolkin



Joined: 25 Jul 2009
Posts: 664

Post (Separately) Posted: Sat Oct 19, 2013 17:55    Post subject: Reply with quote

mrmerak
Знаю Smile
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1236

Post (Separately) Posted: Sun Jul 13, 2014 14:44    Post subject: Reply with quote

Strek
Нет ли проблем при перезапуске? Использую нескомпилированный скрипт (дополненный) - иногда нажимаю, ТС закрывается, но новая копия не открывается. Наверное, надо прикручивать проверку.
Back to top
View user's profile Send private message
mrmerak



Joined: 20 Aug 2007
Posts: 441

Post (Separately) Posted: Sun Jul 13, 2014 15:22    Post subject: Reply with quote

Skif_off
я на TCIMG.exe rstart перешол
_________________
TC 9.51 | Win10 1903
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1236

Post (Separately) Posted: Sun Jul 13, 2014 17:05    Post subject: Reply with quote

mrmerak
Помимо перезапуска еще кое-какие действия повесил, TCIMG недостаточно (ну и мнение по ней пока не сформулировал).
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Thu Jul 17, 2014 07:51    Post subject: Reply with quote

Skif_off wrote:
Strek
Нет ли проблем при перезапуске? Использую нескомпилированный скрипт (дополненный) - иногда нажимаю, ТС закрывается, но новая копия не открывается. Наверное, надо прикручивать проверку.
После посыла команды закрытия окна нужно делать задержку (0.2...1.0 сек) перед следующим запуском ТС

Попробуйте, может будет понадежнее:
Code:
' Папки разных 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

_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Jul 17, 2014 14:12    Post subject: Reply with quote

gora wrote:
Code:
Если есть запущенные процессы TC x-/-, то все их закрываем
Сомнительная задачка. К чему она?
gora wrote:
Code:
Where Name = '" & FSO.GetFileName(TC86) & "'"
И если exe какой-то копии переименован, тады чего?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Thu Jul 17, 2014 17:19    Post subject: Reply with quote

Flasher wrote:
gora wrote:
Code:
Если есть запущенные процессы TC x-/-, то все их закрываем
Сомнительная задачка. К чему она?

Это цитата не из меня. У меня там очень точно, мухи отдельно, котлеты отдельно. Постарайтесь цитировать без искажений о обобщений.
Flasher wrote:
gora wrote:
Code:
Where Name = '" & FSO.GetFileName(TC86) & "'"
И если exe какой-то копии переименован, тады чего?
Тут важно читать следующее:
gora wrote:
Папки разных TC, у меня папки разные

1 И ни какие общие варианты я не рассматривал.
2 Я отвечал Skif_off, который обсуждал код из поста, где имена и пути заданы абсолютными. Smile
_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1236

Post (Separately) Posted: Thu Jul 17, 2014 18:57    Post subject: Reply with quote

gora wrote:
После посыла команды закрытия окна нужно делать задержку (0.2...1.0 сек) перед следующим запуском ТС

Почти сразу добавил Sleep(500).

gora wrote:
Попробуйте, может будет понадежнее

taskkill /PID - не очень корректно Smile
Back to top
View user's profile Send private message
gora



Joined: 30 Dec 2004
Posts: 442
Location: Иваново

Post (Separately) Posted: Thu Jul 17, 2014 19:42    Post subject: Reply with quote

Skif_off wrote:
taskkill /PID - не очень корректно

Чем?
_________________
Win7 SP1 Ultimate x64, TC8.52a x64
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Jul 17, 2014 19:51    Post subject: Reply with quote

gora wrote:
Это цитата не из меня. У меня там очень точно, мухи отдельно, котлеты отдельно. Постарайтесь цитировать без искажений о обобщений.
Раз про точность заговорили, "не из меня" или "не из моего кода"? "о обобщений" - это как?
В коде две строки. Мне их дважды предлагается повторить? Или лаконичность тут отменили?
gora wrote:
Тут важно читать следующее:
Это я прочёл сразу, суть моего вопроса от этого не пострадала.
gora wrote:
1 И ни какие общие варианты я не рассматривал.
Да ну? А перебор в цикле с завершением всех запущенных процессов с тем же именем?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 5, 6, 7 ... 10, 11, 12  Next
Page 6 of 12

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group