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

#91:  Author: goraLocation: Иваново PostPosted: Thu Jul 17, 2014 20:02
    —
Flasher
Ну если Вы не хотите уточнить свой вопрос, то мне ответить нечего, ибо я его не понял.
Flasher wrote:
Да ну? А перебор в цикле с завершением всех запущенных процессов с тем же именем?

Это я тоже не понял. В чем упрек?
А вообще конкурировать с Вами в скриптописательстве я не собираюсь. Давайте замнем и забудем мой код. Я его ни кому не навязываю и не утверждаю, что он "лучше чем...". Хорошо?

#92:  Author: FlasherLocation: Москва PostPosted: Thu Jul 17, 2014 20:30
    —
gora wrote:
Ну если Вы не хотите уточнить свой вопрос, то мне ответить нечего, ибо я его не понял.
Я бы уточнил, если бы понял, что уточнять. Какой вопрос остался непонятым?
gora wrote:
Это я тоже не понял. В чем упрек?
В общности данного перебора:
gora wrote:
Code:
      For Each objProcess in colProcessList
         WScript.Sleep 100
         WSS.Run "taskkill /PID " & objProcess.ProcessID, 0
      Next
Сюда попадают все процессы с именами безотносительно указанных в начале кода путей.
gora wrote:
Хорошо?
А разобраться или доработать неинтересно? Smile

#93:  Author: goraLocation: Иваново PostPosted: Thu Jul 17, 2014 20:43
    —
Flasher wrote:
А разобраться или доработать неинтересно?

Не-а
gora wrote:
Давайте замнем и забудем мой код

#94:  Author: FlasherLocation: Москва PostPosted: Thu Jul 17, 2014 20:49
    —
ОК. Уже. Very Happy

#95:  Author: Skif_off PostPosted: Thu Jul 17, 2014 21:20
    —
gora wrote:
Skif_off wrote:
taskkill /PID - не очень корректно

Чем?

Штатно программы закрываем крестиком/Alt+F4, прибивать как-то нехорошо Smile

#96:  Author: goraLocation: Иваново PostPosted: Thu Jul 17, 2014 21:29
    —
Skif_off wrote:
прибивать как-то нехорошо

Я в комментариях написал, что процесс не убивается, а закрывается.
Команда taskkill /PID будет убивать в комплекте с ключом /F.
Можете проверить. В последнем случае папки, открытые в панелях после запуска ТС не будут сохраняться при перезапуске ТС, а без ключа /F идет закрытие равнозначное нажатию на красный крест в заголовке окна ТС.

#97:  Author: Skif_off PostPosted: Fri Jul 18, 2014 11:16
    —
gora
Всегда думал, что taskkill - то же самое, что Завершить процесс, а taskkill /f - Завершить дерево.

#98:  Author: goraLocation: Иваново PostPosted: Fri Jul 18, 2014 11:25
    —
Skif_off wrote:
taskkill /f - Завершить дерево.

Нет.
Quote:
/F Принудительное завершение процесса
/T Завершение указанного процесса и всех его дочерних процессов.

Подробности taskkill /?

#99:  Author: Skif_off PostPosted: Wed Sep 03, 2014 01:38
    —
Кто пользуется скриптом AutoIt или модификацией, обратите внимание: кажется, решена проблема определения нужной копии при нескольких запущенных ТС.

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

Тысяча чертей Smile Всплыла другая проблема: при перезапуске с админскими правами ("*" в начале команды или меню ПКМ) получается болт, т.к. переменные окружения не наследуются.
Надо думать. Или передать параметром при старте скрипта, или воспользоваться nircmd elevate

Добавлено спустя много, 2014.09.12:

По ссылке выше есть диалог с gora, уточнение для повышения скорости работы и пара предположений, потенциально упрощающих работу и, главное - перезапуск с повышением прав. Попутное закрытие дочерних окон отдельных поиска и синхронизации вроде получилось, если кому интересно.

#100:  Author: Skif_off PostPosted: Tue Oct 14, 2014 17:28
    —
Исправленный и окончательный вариант на AutoIt, гарантированная работа с несколькими запущенными копиями ТС, возможно закрытие дочерних окон отдельных поиска и синхронизации.

Есть мысль прикрутить возможность парсить командную строку на предмет /i=имя.ini, но пока борюсь Smile

#101:  Author: Skif_off PostPosted: Tue Dec 30, 2014 14:13
    —
Поясните, пожалуйста, логику работы скрипта перезапуска:
1. Если ТС запущен с параметрами, при перезапуске нужно сохранить все или только /i= и /f=?

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

2. В справке указано
Code:
TOTALCMD.EXE /i=wincmd.ini /f=wcx_ftp.ini

но реально сработает любой вариант:
Code:
TOTALCMD.EXE /i=wincmd.ini  f=wcx_ftp.ini
TOTALCMD.EXE  i=wincmd.ini /f=wcx_ftp.ini
TOTALCMD.EXE  i=wincmd.ini  f=wcx_ftp.ini

Это баг? Учитывать или надеятся, что все будут делать по справке?

#102:  Author: FlasherLocation: Москва PostPosted: Tue Dec 30, 2014 17:01
    —
Skif_off
1. Только, конечно.
2. Ух ты. А я и не знал. Видимо, Гислер косую черту не ищет при парсинге. Пойду проверю.

#103:  Author: Skif_off PostPosted: Wed Dec 31, 2014 11:28
    —
Думаю, второй вариант скрипта не тянет на публичный, т.к использование WinAPI накладывает определённые ограничения... Сразу не сообразил, т.к. у меня поддержка AutoIt (что забавно - отчасти и в рассчёте на подобные случаи) реализована с помощью плагина AutoRun:
Code:

If %AUTORUN_TCARCH% = 32 Then
  SetEnv /EV AutoIt %COMMANDER_PATH%\AutoIt3.exe
Else
  SetEnv /EV AutoIt %COMMANDER_PATH%\AutoIt3_x64.exe
EndIf


З.Ы. У выложенного выше Исправленный и окончательный вариант на AutoIt мне не нравилась необходимость дописывать в команду "%COMMANDER_EXE%", сейчас могу убрать (исходя из предположения, что скрипт будет лежать рядом с %COMMANDER_EXE%), но это добавит функцию строк на 20. Или ладно с ним?

#104:  Author: addhaloka PostPosted: Thu Aug 27, 2015 14:56
    —
ask-rus wrote:
Опробовал Tinny TC Restarter с 64-битным TC - всё в норме.

Пришлось его пропатчить, чтобы правильно работал с Impomezia TC Color Presets и 64-битным TC, т. е. чтобы restarttc.exe перезапускал по умолчанию TOTALCMD64.EXE, а не TOTALCMD.EXE.
На этом поначалу и остановился - в 32-битной сборке использую оригинальный, в 64-х - пропатченный - всё прекрасно. Very Happy Но тут, на досуге решил сделать сборку 32-64 - сразу же возник вопрос - как Tinny TC Restarter задействовать в ней? Нашёл решение (костыль конечно, но меня устраивает): переименовал оригинальный restarttc.exe в restarttc32.exe, а пропатченный для x64, соответственно в restarttc64.exe, для их запуска написал лаунчер, который запускает соответствующий рестартер в зависимости от того, из какого TC (32/64) вызван. Вроде нормально работает и с TC, и с TC Color Presets.
Если кого интересует, вышеописанное с исходником:
http://rghost.ru/private/6TZXTcJNR/adf14405d977836c9adb28e566ef2e6c

#105:  Author: addhaloka PostPosted: Sat Jul 08, 2017 04:47
    —
Quote:
Но тут, на досуге решил сделать сборку 32-64 - сразу же возник вопрос - как Tinny TC Restarter задействовать в ней? Нашёл решение (костыль конечно, но меня устраивает): переименовал оригинальный restarttc.exe в restarttc32.exe, а пропатченный для x64, соответственно в restarttc64.exe, для их запуска написал лаунчер, который запускает соответствующий рестартер в зависимости от того, из какого TC (32/64) вызван. Вроде нормально работает и с TC, и с TC Color Presets.

Для TC Color Presets 0.1.1.7 патч больше не нужен, и для Тотала он не обязателен, как уже понял - однако всё-равно оставил патченный вариант, как более универсальный, чтобы не плодить лишние команды в сборке 32-64 или не использовать Autorun.wdx.
Но, с Tinny TC Restarter уже начал бесить один момент - он почему-то всегда запускает TC, даже если нажать "Нет" в этом окне. Sad
С restartTC_Fasm и ReloadTC такого безобразия нет.
Больше всего нравится restartTC_Fasm отсюда, но он не работает на Win 8.1 (возможно, на Vista/Win 7 тоже). Оригинальный вообще не запускался на 8.1 - это я поправил, а вот дальше затык - процесс Тотала пришибается, а новый не создаётся. Буду пытаться разобраться.
Пока что перешёл на ReloadTC - пропатчил аналогично, как Tinny TC Restarter - вроде нормально работает. Плюс сделал доп. патч - заменил в импорте msvbvm50.dll на msvbvm60.dll (чтобы не плодить доп. библиотеки - msvbvm60.dll уже используется для TweakTC.
Вот набор, если кому надо: https://www.upload.ee/files/7203097/util_reloadtc_1_1_mod.7z.html
Если TC только x32, то может пригодится patched_msvbvm60\ReloadTC32.exe*, если же только x64, то ReloadTC64.exe* из patched / patched_msvbvm60.

* Переименуйте в это случае в ReloadTC.exe.

Если сборка 32-64, то используйте все 3 exe, ReloadTC.exe в данном случае лаунчер, по типу, как в пред. посте для Tinny TC Restarter.

p.s. msvbvm50/60, разумеется должна находится рядом с ReloadTC или в %PATH%.



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


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

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

Powered by phpBB © 2001, 2005 phpBB Group