View previous topic :: View next topic |
Author |
Message |
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Thu Jul 17, 2014 20:02 Post subject: |
|
|
Flasher
Ну если Вы не хотите уточнить свой вопрос, то мне ответить нечего, ибо я его не понял. Flasher wrote: | Да ну? А перебор в цикле с завершением всех запущенных процессов с тем же именем? |
Это я тоже не понял. В чем упрек?
А вообще конкурировать с Вами в скриптописательстве я не собираюсь. Давайте замнем и забудем мой код. Я его ни кому не навязываю и не утверждаю, что он "лучше чем...". Хорошо? _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Jul 17, 2014 20:30 Post subject: |
|
|
gora wrote: | Ну если Вы не хотите уточнить свой вопрос, то мне ответить нечего, ибо я его не понял. | Я бы уточнил, если бы понял, что уточнять. Какой вопрос остался непонятым?
gora wrote: | Это я тоже не понял. В чем упрек? | В общности данного перебора: gora wrote: | Code: | For Each objProcess in colProcessList
WScript.Sleep 100
WSS.Run "taskkill /PID " & objProcess.ProcessID, 0
Next |
| Сюда попадают все процессы с именами безотносительно указанных в начале кода путей.
А разобраться или доработать неинтересно? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Thu Jul 17, 2014 20:43 Post subject: |
|
|
Flasher wrote: | А разобраться или доработать неинтересно? |
Не-а
gora wrote: | Давайте замнем и забудем мой код |
_________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Jul 17, 2014 20:49 Post subject: |
|
|
ОК. Уже. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1236
|
(Separately) Posted: Thu Jul 17, 2014 21:20 Post subject: |
|
|
gora wrote: | Skif_off wrote: | taskkill /PID - не очень корректно |
Чем? |
Штатно программы закрываем крестиком/Alt+F4, прибивать как-то нехорошо |
|
Back to top |
|
|
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Thu Jul 17, 2014 21:29 Post subject: |
|
|
Skif_off wrote: | прибивать как-то нехорошо |
Я в комментариях написал, что процесс не убивается, а закрывается.
Команда taskkill /PID будет убивать в комплекте с ключом /F.
Можете проверить. В последнем случае папки, открытые в панелях после запуска ТС не будут сохраняться при перезапуске ТС, а без ключа /F идет закрытие равнозначное нажатию на красный крест в заголовке окна ТС. _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1236
|
(Separately) Posted: Fri Jul 18, 2014 11:16 Post subject: |
|
|
gora
Всегда думал, что taskkill - то же самое, что Завершить процесс, а taskkill /f - Завершить дерево. |
|
Back to top |
|
|
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Fri Jul 18, 2014 11:25 Post subject: |
|
|
Skif_off wrote: | taskkill /f - Завершить дерево. |
Нет.
Quote: | /F Принудительное завершение процесса
/T Завершение указанного процесса и всех его дочерних процессов.
| Подробности taskkill /? _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1236
|
(Separately) Posted: Wed Sep 03, 2014 01:38 Post subject: |
|
|
Кто пользуется скриптом AutoIt или модификацией, обратите внимание: кажется, решена проблема определения нужной копии при нескольких запущенных ТС.
Добавлено спустя 50 минут:
Тысяча чертей Всплыла другая проблема: при перезапуске с админскими правами ("*" в начале команды или меню ПКМ) получается болт, т.к. переменные окружения не наследуются.
Надо думать. Или передать параметром при старте скрипта, или воспользоваться nircmd elevate
Добавлено спустя много, 2014.09.12:
По ссылке выше есть диалог с gora, уточнение для повышения скорости работы и пара предположений, потенциально упрощающих работу и, главное - перезапуск с повышением прав. Попутное закрытие дочерних окон отдельных поиска и синхронизации вроде получилось, если кому интересно. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1236
|
(Separately) Posted: Tue Oct 14, 2014 17:28 Post subject: |
|
|
Исправленный и окончательный вариант на AutoIt, гарантированная работа с несколькими запущенными копиями ТС, возможно закрытие дочерних окон отдельных поиска и синхронизации.
Есть мысль прикрутить возможность парсить командную строку на предмет /i=имя.ini, но пока борюсь |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1236
|
(Separately) Posted: Tue Dec 30, 2014 14:13 Post subject: |
|
|
Поясните, пожалуйста, логику работы скрипта перезапуска:
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 |
Это баг? Учитывать или надеятся, что все будут делать по справке? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Dec 30, 2014 17:01 Post subject: |
|
|
Skif_off
1. Только, конечно.
2. Ух ты. А я и не знал. Видимо, Гислер косую черту не ищет при парсинге. Пойду проверю. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1236
|
(Separately) Posted: Wed Dec 31, 2014 11:28 Post subject: |
|
|
Думаю, второй вариант скрипта не тянет на публичный, т.к использование 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. Или ладно с ним? |
|
Back to top |
|
|
addhaloka
Joined: 09 Nov 2010 Posts: 169
|
(Separately) Posted: Thu Aug 27, 2015 14:56 Post subject: |
|
|
ask-rus wrote: | Опробовал Tinny TC Restarter с 64-битным TC - всё в норме. |
Пришлось его пропатчить, чтобы правильно работал с Impomezia TC Color Presets и 64-битным TC, т. е. чтобы restarttc.exe перезапускал по умолчанию TOTALCMD64.EXE, а не TOTALCMD.EXE.
На этом поначалу и остановился - в 32-битной сборке использую оригинальный, в 64-х - пропатченный - всё прекрасно. Но тут, на досуге решил сделать сборку 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 |
|
Back to top |
|
|
addhaloka
Joined: 09 Nov 2010 Posts: 169
|
(Separately) Posted: Sat Jul 08, 2017 04:47 Post subject: |
|
|
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, даже если нажать "Нет" в этом окне.
С 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%. |
|
Back to top |
|
|
|
|
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
|