View previous topic :: View next topic |
Author |
Message |
addhaloka
Joined: 09 Nov 2010 Posts: 169
|
(Separately) Posted: Mon Jul 10, 2017 14:35 Post subject: |
|
|
Quote: | Больше всего нравится restartTC_Fasm отсюда, но он не работает на Win 8.1 (возможно, на Vista/Win 7 тоже). Оригинальный вообще не запускался на 8.1 - это я поправил, а вот дальше затык - процесс Тотала пришибается, а новый не создаётся. Буду пытаться разобраться. |
Проблема в ReadProcessMemory - на осях выше XP как-то не так работает.
Кстати, благодаря такому способу получения данных о процессе TC restartTC_Fasm обладает уникальной фичей, отсутствующей у Tinny TC Restarter или ReloadTC - если TC был запущен с параметрами, то при перезапуске они сохраняются.
Пока не разобрался с ReadProcessMemory (впрочем, ещё даже не начинал ), сделал простой вариант, без главной фичи, но на мой взгляд не хуже других рестартеров + минимализм - код макс. упрощён, в итоге exeшник весит всего 1 Кб.
Если кого интересует, вот с исходником: https://www.upload.ee/files/7211508/restartTC_Fasm_simplified.7z.html
upd. Немного поправил код, перезалил. |
|
Back to top |
|
|
addhaloka
Joined: 09 Nov 2010 Posts: 169
|
(Separately) Posted: Wed Aug 09, 2017 15:01 Post subject: |
|
|
Разобрался с уникальной фичей (спасибо ManHunter за статью). Правда, есть некоторые сомнения:
Hidden text 1. В правильности оформления функций GetProcessInfo32(64) - проверка ошибок там минимальная, возможно надо больше? И нужно ли в них выделять память (проблем не заметил в 8.1 x64 и XP SP3, но мало ли )?
2. Антивирусное ПО может неадекватно реагировать на вызов функции из ntdll.dll.
https://www.upload.ee/files/7327907/restartTC_Fasm.7z.html |
|
Back to top |
|
|
Duremar
Joined: 14 Aug 2014 Posts: 46
|
(Separately) Posted: Sun Feb 10, 2019 02:44 Post subject: |
|
|
Avada wrote: |
Таким образом единственным средством, которое везде и всюду перезапускает именно то, что нужно, не требует дополнительных em-команд и при этом не глючит, оказался у меня Tinny TC Restarter. Команду (со своими именами и путями) использую такую:
%Commander_path%\Utils\TCRestarter\TinnyTCRestarter.exe 300 %Commander_EXE% |
Если я правильно понял, должны разрядности меняться, но у меня одна и таже каждый раз загружается. Или же, на последних версиях тотала, этот способ уже не работает? |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10275 Location: Россия, Саратов
|
(Separately) Posted: Sun Feb 10, 2019 09:20 Post subject: |
|
|
Duremar
Если это выполнено из 32-битного TC, он и будет перезапущен. Если из 64-битного — перезапускается он. Только об этом речь и шла. У меня этот способ сохраняется как резервный, постоянно я давно уже пользуюсь скриптом. В TC 9,21a под Win7x64 при правильном указании путей и переменных всё прекрасно работает.
Что такое " должны разрядности меняться", в данном контексте не вполне понял. Для перезапуска со сменой разрядности есть, например, отдельный способ, упомянутый в этой же теме (с. 5-7). Им и пользуюсь. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Jenialij
Joined: 16 Jul 2012 Posts: 6
|
(Separately) Posted: Mon Feb 25, 2019 16:58 Post subject: |
|
|
Здравствуйте, Flasher.
Решил воспользоваться Вашим скриптом для перезагрузки TC, но не могу разобраться с ошибкой: "Параметры не соответствуют описанию!" при его вызове.
Win 7 x64
TC 9.21 x32
Пути к History.ini и TCFS2.exe указал свои.
TCFS2Tools загружается через Autorun.
Настройки TCFS2.ini дефолтные. В Readme_TCFS2Tools сказано: "Для использования возможностей TCFS2Tools добавьте следующие команды в секцию [Items] файла конфигурации TCFS2:..."
Добавлял эти команды, но не помогло.
Прошу помощи. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10275 Location: Россия, Саратов
|
(Separately) Posted: Mon Feb 25, 2019 18:16 Post subject: |
|
|
Jenialij
А с указанными в шапке скрипта параметрами для вызывающей скрипт кнопки или юзер-команды что? (Тем более, что в сообщении об ошибке — прямой намёк на это.) И в ридми TCFS2Tools.dll вы непонятно зачем полезли. Где-то в скрипте предлагалось менять его настройки по умолчанию? _________________ Даже самая богатая фантазия
Не представит себе наши безобразия.
Last edited by Avada on Mon Feb 25, 2019 19:25; edited 1 time in total |
|
Back to top |
|
|
Jenialij
Joined: 16 Jul 2012 Posts: 6
|
(Separately) Posted: Mon Feb 25, 2019 18:46 Post subject: |
|
|
Avada
Параметры указал такие же, как в шапке скрипта: "%X%P%Z" "%T" ""%N"" ""%M"
А в TCFS2.ini полез уже после, ибо не работало (обратил внимание на слова: "с обновлениями TCFS2.ini") |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10275 Location: Россия, Саратов
|
(Separately) Posted: Mon Feb 25, 2019 19:33 Post subject: |
|
|
Jenialij
В приведённых параметрах последней кавычки нет. Может быть, конечно, это здесь неверно скопировано... И ещё раз: никакие INI-файлы не нужны ни до, ни после. (Не говоря про то, что в ридми ясно написано про имя конфига для TCFS2Tools.dll — это ни разу не TCFS2.ini, а повторение имени модуля.) Я не писал там ничего, и у меня скрипт прекрасно работает который год подряд. Конфигурация TC и Windows практически та же самая. Проверьте как следует кнопку. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Jenialij
Joined: 16 Jul 2012 Posts: 6
|
(Separately) Posted: Mon Feb 25, 2019 19:45 Post subject: |
|
|
Avada
Последнюю кавычку уже сюда, на форум, "недоскопировал", в самих параметрах она есть.
Про ini понял.
Пересмотрел уже wincmd.ini - все секции, касающиеся History "редиректятся" в History.ini.
Загадка, но ведь ошибка именно в параметрах, как Вы верно отметили. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10275 Location: Россия, Саратов
|
(Separately) Posted: Tue Feb 26, 2019 08:26 Post subject: |
|
|
Jenialij
Предъявите код кнопки (копировать в её контекстном меню, вставить текстом в сообщение). У меня есть сомнения, туда ли вы вообще записали параметры. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Jenialij
Joined: 16 Jul 2012 Posts: 6
|
(Separately) Posted: Tue Feb 26, 2019 11:48 Post subject: |
|
|
Avada
Команда:
[em_RestartTC]
cmd=%commander_path%\Scripts\TC\RestartTC.vbs
param="%X%P%Z" "%T" ""%N"" ""%M""
Menu=Перезапуск TC
***
Провел такой эксперимент - взял "чистый" TC 9.21 x32 (стандартно установил).
Внесенные изменения:
1) редирект секций [left], [right], [RightHistory], [LeftHistory] в History.ini;
2) установка Autorun.wdx с подключением в автозагрузку в цветовой схеме + автозагрузка TCFS2Tools.dll.
3) создание на панели TC кнопки:
cmd=%commander_path%\Scripts\TC\RestartTC.vbs
param="%X%P%Z" "%T" ""%N"" ""%M""
Скрипт заработал.
Значит, где-то в настройках "моего" TC ошибка. Но где?
Потом подумал: но в "своём" TC для запуска скрипта я использую команду em_, а в "чистом" TC - кнопку с указанием пути к скрипту с параметрами.
Казалось бы, какая разница? Но...
Создал в "чистом TC" файл WCMD_RUS.ini с единственной командой и прописал ее в кнопке.
Скрипт перестал работать, ошибка - "Параметры не соответствуют описанию!"
Повторил это всё многократно на "чистом" и "своём" TC.
Результат:
1) скрипт не работает через команду em_ (ни через кнопку, ни через меню WCMD_RUS.MNU )
2) скрипт работает только через кнопку с прописанным путём к скрипту с параметрами. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10275 Location: Россия, Саратов
|
(Separately) Posted: Tue Feb 26, 2019 13:41 Post subject: |
|
|
Jenialij
Ошибка не в настройках, а в неполном понимании того, что куда нужно и можно записывать. Ключевой момент — имя INI-файла с em-командами. Для начала прочитайте хотя бы здесь, чем отличаются по области применения usercmd.ini и WCMD_RUS.ini и впредь последний файл (или подобные ему) как полный аналог usercmd.ini нигде и никогда не используйте. А если он для чего-то всё же нужен, помните о связанных с ним ограничениях. В "чистом" TC с английским языком, равно как и в русcком TC, использующем меню с именем, отличным от WCMD_RUS.MNU (например, расширенное), ВСЕ записи из этого INI-файла попросту игнорируются, программа его не видит, результат вами выше описан. Кроме того, если юзер-команда с одинаковым именем записана и в usercmd.ini, и в WCMD_RUS.ini, она берётся только из основного файла, даже если настройки внутри команды разные.
У меня сделана (разумеется, в usercmd.ini, предназначенном для любого языка и любого меню) юзер-команда со всеми параметрами, в кнопке указано её имя, всё прекрасно работает. К скрипту как таковому, насколько понимаю, всё это отношения не имеет никакого. Может быть, там и ещё что-то, но для начала с этим разберитесь. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Jenialij
Joined: 16 Jul 2012 Posts: 6
|
(Separately) Posted: Wed Feb 27, 2019 10:40 Post subject: |
|
|
Avada
Спасибо, что уделили время, и за напутствие по "ini" тоже.
Учту.
Но дело в том, что команда em_, перенесенная в usercmd.ini, у меня все равно не работает.
Повторения имени команды тоже нет. В "чистом" TC файл WCMD_RUS.ini удалил, а в usercmd.ini всего одна запись. В обеих TC одинаковая ошибка.
Где-то у меня что-то не так. Пользуюсь многими скриптами и всё нормально, а тут какая-то незадача.
Пока повесил скрипт на кнопку, не используя команду em_. Скрипт со своей задачей отлично справляется, да и ощутимо быстрее аналогов перезапускает TC.
Еще раз спасибо. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10275 Location: Россия, Саратов
|
(Separately) Posted: Wed Feb 27, 2019 12:51 Post subject: |
|
|
Jenialij
У меня очень похожая на вашу конфигурация, вплоть до редиректа части секций (ну, пути несколько другие), и всё прекрасно работает.
Что в данном случае теперь означает "всё равно не работает"? Как вы её пытаетесь заставить работать?
Оставим на минуту в покое кнопку (равно как и меню). Попытайтесь попросту запустить из командной строки TC вашу команду em_RestartTC. Результат? И простенький вопрос: у вас другие пользовательские команды (любые) работают?
Между прочим, вы привели выше не код кнопки, а, насколько понимаю, две выдернутых из BAR-файла строки. Не надо так делать, весь код дайте (выше сказано — как, да и на форуме сто раз пояснялось): все восемь строк, включая пустые.
P.S. Одну разницу я всё-таки обнаружил: в одном из вариантов команды параметры записаны с дополнительными кавычками в начале и в конце:
param=""%X%P%Z" "%T" ""%N"" ""%M"""
Попробуйте это, хотя у меня всё работает с обычным набором кавычек (и даже после %M с одной вместо двух). В этом синтаксисе (сколько там где нужно кавычек), похоже, и причина (хотя пока непонятная). _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Jenialij
Joined: 16 Jul 2012 Posts: 6
|
(Separately) Posted: Wed Feb 27, 2019 15:02 Post subject: |
|
|
Avada
Запуск команды em_RestartTC из командной строки TC также завершилось сообщением об ошибке.
А вот добавление еще одних кавычек проблему решило. Т.е. так:
param=""%X%P%Z" "%T" ""%N"" ""%M"""
Теперь все нормально.
Благодарю. |
|
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
|