Рестарт/перезапуск TC
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3 ... 9, 10, 11, 12  Next  :| |:
Total Commander -> Автоматизация Total Commander

#136:  Author: FlasherLocation: Москва PostPosted: Tue Mar 05, 2019 15:09
    —
Avada wrote:
У меня этот способ сохраняется как резервный, постоянно я давно уже пользуюсь скриптом.
Avada wrote:
Я использую экзешник на основе этого скрипта из текущей темы с последующими модификациями (раз, два).
Ты двумя скриптами пользуешься что-ли? В части последнего, по-моему, всё проще:
Code:
; Параметр в поле Команда: "%COMMANDER_EXE%"
$hWnd = WinActive("[CLASS:TTOTAL_CMD]")
If $hWnd Then
  WinClose($hWnd)
  ProcessWaitClose(WinGetProcess($hWnd))
  If @OSArch = 'x86' Or (StringRight($CmdLine[1], 6) = '64.exe') Then
    Run($CmdLine[1])
  Else
    Run(StringLeft($CmdLine[1], StringLen($CmdLine[1])-4) & '64.exe')
  EndIf
EndIf

Первый, морально устарел, конечно. Давно его не юзаю. Пошёл в итоге по пути команд TCFS2.


Last edited by Flasher on Tue Mar 05, 2019 17:00; edited 3 times in total

#137:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Mar 05, 2019 16:13
    —
Flasher
Да, у меня два скрипта: твой для перезапуска и упомянутый выше для смены битности. Впрочем, по мере появления, как видишь, рассматриваю и другие варианты. А твой свежий вариант скрипта перезапускает TC, но битность не меняет.

#138:  Author: FlasherLocation: Москва PostPosted: Tue Mar 05, 2019 16:16
    —
Avada
Ну, да, не меняет. А профит в чём? Для тестов?

#139:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Mar 05, 2019 16:20
    —
Flasher
Не понял. Ты предлагаешь скрипт на замену последнему из двух, который для смены битности? Ну так мне нужно её менять. Без всяких тестов, для повседневной работы.

#140:  Author: FlasherLocation: Москва PostPosted: Tue Mar 05, 2019 16:46
    —
Avada
Ты вроде всюду пишешь, что используешь 32-битный Тотал на x64 системе. Ну, ОК, исправил.

#141:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Mar 05, 2019 18:01
    —
Flasher
Если быть совсем точным, я использую комбинированный TC на разных системах. В x64 — преимущественно 32-битный (пока).
Скрипт гляну попозже, сейчас занят другими делами.

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

Посмотрел. Не происходит обратное переключение с x64 на x32.

#142:  Author: FlasherLocation: Москва PostPosted: Tue Mar 05, 2019 20:16
    —
Avada
А, тебе чистый реверс нужен. Думал, что всегда в 64. Тогда так:
Code:
;:::::::::::::::::::: AU3 ::::::::::::::::::::
; Перезапуск ТС со сменой архитектуры x32<>x64
; Параметр в поле Команда: "%COMMANDER_EXE%"
;:::::::::::::::::::::::::::::::::::::::::::::
#NoTrayIcon
Local $hWnd = WinActive("[CLASS:TTOTAL_CMD]")
If $hWnd Then
  Opt("WinWaitDelay", 40)
  Local $TC = $CmdLine[1], $PFix = '', $n = 4
  WinClose($hWnd)
  ProcessWaitClose(WinGetProcess($hWnd))
  If @OSArch <> 'x86' Then
    If StringRight($TC, 6) = '64.EXE' Then
      $n = 6
    Else
      $PFix = '64'
    EndIf
  EndIf
  $PID = Run(StringLeft($TC, StringLen($TC) - $n) & $PFix & '.EXE')
  WinWaitActive("[CLASS:TTOTAL_CMD]")
  $WSS = ObjCreate('WScript.Shell')
  $WSS.AppActivate($PID)
EndIf
На Win x32 будет стандартный перезапуск.

Last edited by Flasher on Thu Mar 07, 2019 21:04; edited 7 times in total

#143:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Mar 05, 2019 20:38
    —
Flasher
Чистый реверс, конечно. У меня обе битности могут быть рабочими. Сейчас идёт нормальная перезагрузка с x32 на x64, а если наоборот, x64 закрывается, а x32 не открывается. Проверь.

#144:  Author: FlasherLocation: Москва PostPosted: Tue Mar 05, 2019 20:46
    —
Avada
Не вижу причин для этого. У тебя в точности такой вариант, как сейчас?

#145:  Author: sergiokapone PostPosted: Tue Mar 05, 2019 21:09
    —
Нли компилировать батник с Quick batch compiler со скрытием консольного окна, то лезут непонятные косяки с перезапуском, если разрешить запуск консольного окна, то отрабатывает так же, как и батник. Может, конечно у кого-то есть годное решение, как можно скрывать консольное окно.

Last edited by sergiokapone on Wed Mar 06, 2019 12:32; edited 1 time in total

#146:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Mar 06, 2019 06:50
    —
Flasher
В точности такой же. И с правильным параметром в правильном поле кнопки. Перепроверял только что.

#147:  Author: FlasherLocation: Москва PostPosted: Wed Mar 06, 2019 07:05
    —
Avada
При этом в папке ТС присутствуют TOTALCMD.exe и TOTALCMD64.exe?

#148:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Mar 06, 2019 07:25
    —
Flasher
Конечно, присутствуют.
Я попозже ещё место расположения скрипта попробую поменять.

#149:  Author: FlasherLocation: Москва PostPosted: Wed Mar 06, 2019 07:30
    —
Avada
Место расположения скрипта вообще никак не влияет.
Вставь последней строкой:
Code:
MsgBox(0, '', StringLeft($CmdLine[1], StringLen($CmdLine[1]) - 6) & $PFix & '.exe')
Что покажет?
4, 5, 9 строки можно временно закомментировать.
И в wincmd.ini у тебя Onlyonce=0 ?

#150:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Mar 06, 2019 10:21
    —
Flasher
Тестировать буду вечером дома: на работе с запуском этих скриптов в любой их модификации почему-то возникли проблемы, на уяснение и устранение которых пока нет времени. И, да, у меня Onlyonce=0.

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

Удалось запустить тестовый вариант с дополнительной строкой.
При вызове x64 из x32 выводится окно с правильным путём:
Code:
-------------- ------------
0
---------------------------
C:\Totalcmd\TOTALCMD64.exe
---------------------------
ОК   
---------------------------

При обратном вызове имеем следующее:
Code:
---------------------------
0
---------------------------
C:\Totalcmd\TOTALCMDMD.exe
---------------------------
ОК   
---------------------------

Видно, что имя неправильное.
Надо продолжать с закомментированными строками?



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3 ... 9, 10, 11, 12  Next  :| |:
Page 10 of 12

Powered by phpBB © 2001, 2005 phpBB Group