View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Mar 05, 2019 15:09 Post subject: |
|
|
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. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Tue Mar 05, 2019 17:00; edited 3 times in total |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10276 Location: Россия, Саратов
|
(Separately) Posted: Tue Mar 05, 2019 16:13 Post subject: |
|
|
Flasher
Да, у меня два скрипта: твой для перезапуска и упомянутый выше для смены битности. Впрочем, по мере появления, как видишь, рассматриваю и другие варианты. А твой свежий вариант скрипта перезапускает TC, но битность не меняет. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Mar 05, 2019 16:16 Post subject: |
|
|
Avada
Ну, да, не меняет. А профит в чём? Для тестов? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10276 Location: Россия, Саратов
|
(Separately) Posted: Tue Mar 05, 2019 16:20 Post subject: |
|
|
Flasher
Не понял. Ты предлагаешь скрипт на замену последнему из двух, который для смены битности? Ну так мне нужно её менять. Без всяких тестов, для повседневной работы. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Mar 05, 2019 16:46 Post subject: |
|
|
Avada
Ты вроде всюду пишешь, что используешь 32-битный Тотал на x64 системе. Ну, ОК, исправил. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10276 Location: Россия, Саратов
|
(Separately) Posted: Tue Mar 05, 2019 18:01 Post subject: |
|
|
Flasher
Если быть совсем точным, я использую комбинированный TC на разных системах. В x64 — преимущественно 32-битный (пока).
Скрипт гляну попозже, сейчас занят другими делами.
Добавлено спустя 1 час 25 минут:
Посмотрел. Не происходит обратное переключение с x64 на x32. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Mar 05, 2019 20:16 Post subject: |
|
|
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 будет стандартный перезапуск. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Thu Mar 07, 2019 21:04; edited 7 times in total |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10276 Location: Россия, Саратов
|
(Separately) Posted: Tue Mar 05, 2019 20:38 Post subject: |
|
|
Flasher
Чистый реверс, конечно. У меня обе битности могут быть рабочими. Сейчас идёт нормальная перезагрузка с x32 на x64, а если наоборот, x64 закрывается, а x32 не открывается. Проверь. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Mar 05, 2019 20:46 Post subject: |
|
|
Avada
Не вижу причин для этого. У тебя в точности такой вариант, как сейчас? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
sergiokapone
Joined: 18 Nov 2009 Posts: 99
|
(Separately) Posted: Tue Mar 05, 2019 21:09 Post subject: |
|
|
Нли компилировать батник с Quick batch compiler со скрытием консольного окна, то лезут непонятные косяки с перезапуском, если разрешить запуск консольного окна, то отрабатывает так же, как и батник. Может, конечно у кого-то есть годное решение, как можно скрывать консольное окно.
Last edited by sergiokapone on Wed Mar 06, 2019 12:32; edited 1 time in total |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10276 Location: Россия, Саратов
|
(Separately) Posted: Wed Mar 06, 2019 06:50 Post subject: |
|
|
Flasher
В точности такой же. И с правильным параметром в правильном поле кнопки. Перепроверял только что. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Mar 06, 2019 07:05 Post subject: |
|
|
Avada
При этом в папке ТС присутствуют TOTALCMD.exe и TOTALCMD64.exe? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10276 Location: Россия, Саратов
|
(Separately) Posted: Wed Mar 06, 2019 07:25 Post subject: |
|
|
Flasher
Конечно, присутствуют.
Я попозже ещё место расположения скрипта попробую поменять. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Mar 06, 2019 07:30 Post subject: |
|
|
Avada
Место расположения скрипта вообще никак не влияет.
Вставь последней строкой:
Code: | MsgBox(0, '', StringLeft($CmdLine[1], StringLen($CmdLine[1]) - 6) & $PFix & '.exe') | Что покажет?
4, 5, 9 строки можно временно закомментировать.
И в wincmd.ini у тебя Onlyonce=0 ? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10276 Location: Россия, Саратов
|
(Separately) Posted: Wed Mar 06, 2019 10:21 Post subject: |
|
|
Flasher
Тестировать буду вечером дома: на работе с запуском этих скриптов в любой их модификации почему-то возникли проблемы, на уяснение и устранение которых пока нет времени. И, да, у меня Onlyonce=0.
Добавлено спустя 9 минут:
Удалось запустить тестовый вариант с дополнительной строкой.
При вызове x64 из x32 выводится окно с правильным путём:
Code: | -------------- ------------
0
---------------------------
C:\Totalcmd\TOTALCMD64.exe
---------------------------
ОК
---------------------------
|
При обратном вызове имеем следующее:
Code: | ---------------------------
0
---------------------------
C:\Totalcmd\TOTALCMDMD.exe
---------------------------
ОК
---------------------------
|
Видно, что имя неправильное.
Надо продолжать с закомментированными строками? _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
|