View previous topic :: View next topic |
Author |
Message |
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Thu Mar 07, 2013 10:54 Post subject: |
|
|
KopBuH
Ваш вариант не закрывает ТС, а убивает его процесс. При этом после запуска не сохраняться открытые перед "смертью" директории на панелях при повторном запуске, в отличии от закрытия ТС через посыл Alt+F4. _________________ Win7 SP1 Ultimate x64, TC8.52a x64 |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Thu Mar 07, 2013 14:49 Post subject: |
|
|
Quote: | в отличии от закрытия ТС через посыл Alt+F4. |
Поправка - через cm_Exit (ибо Alt+F4 не при всяких настройках закрывает ТС).
Quote: | не сохраняться открытые перед "смертью" директории |
У меня сохраняет.
Quote: | KopBuH
Ваш вариант не закрывает ТС, а убивает его процесс. |
Самое плохое - этот вариант не закрывает и не убивает процесс 32-х битного ТС под 64-битной Windows.
Непонятный нюанс. В предложенном варианте процесс не убивается (не найден PID) и новая копия Тотала не запускается. А вот если добавить вначале перед comspec скрытие консольных окон hidcon - запускается новая версия Тотала, но старая не убивается. Почему? Ещё не сталкивался чтобы скрыватель консоли так влиял на консольную команду.
И почему PID не находится? Taskill ведь может убивать 32-х битные процессы. _________________ Win11 x64 Eng | TC DreamLair eternal pre-α
Last edited by LonerD on Thu Mar 07, 2013 16:29; edited 1 time in total |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10262 Location: Россия, Саратов
|
(Separately) Posted: Thu Mar 07, 2013 15:06 Post subject: |
|
|
gora
LonerD
Думаю, и до этого, и сейчас сказано уже достаточно, чтобы этот вариант в качестве рекомендуемого больше не рассматривать. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Thu Mar 07, 2013 16:31 Post subject: |
|
|
Avada
А мне наоборот - вариан реализации кажется весьма интересным, но пока не полностью работоспособным.
Flasher
Если ещё актуально по скрипту.
Погонял под Win8x64, Тотал 32-х и 64-х битный, с последним TwinKey (курсор в неактивной панели в TwinKey отключен, в Тотале - включен).
Положение курсора сохраняется только на файлах, но не на каталогах. Внутри архивов положение курсора не сохраняется.
Если файлов в панели много и курсор находится не на первых файлах - то после перезапуска положение его сохраняется, но на экране он не виден, нужно крутнуть чуток вниз список файлов.
Если добавить в авторан активацию Virtual Panel
Code: | # Activate Virtual Panel Plugin
CommandExec /CD "\\\Virtual Panel"
Sleep 50
SendCommand cm_GotoPreviousDir |
то при при положении курсора на правой панели после запуска открывается совсем не то, что ожидалось; при положении курсора на левой панели - положение курсора сохраняется через раз.
В целом даже без этих строк после нескольких десятков перезапусков было _________________ Win11 x64 Eng | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Mar 07, 2013 16:48 Post subject: |
|
|
LonerD wrote: | Если ещё актуально по скрипту. | А где я отменял актуальность? Это Avada написал, что погоняет на других машинах, но так, по всей видимости, и не погонял..
LonerD wrote: | Положение курсора сохраняется только на файлах, но не на каталогах. | Единственное, что можно делать, чтобы оставлять курсор на папках, это входить и выходить из них (причём менять фокус, если папки в обеих панелях). Сомневаюсь, что тебе такое понравится, да и остальным тоже.
LonerD wrote: | Внутри архивов положение курсора не сохраняется. | Знаю, не предусмотрено ТС. Только фокус активности сохраняется (это тоже в какой-то мере положение).
LonerD wrote: | но на экране он не виден, нужно крутнуть чуток вниз список файлов. | Крутить ничего не надо, достаточно воспользоваться одинарным нажатием вверх/вниз.
LonerD wrote: | Если добавить в авторан активацию...
на левой панели - положение курсора сохраняется через раз | Ещё бы. Кто последний, тот и водит. Либо скрипт, либо Autorun.
Как вариант - ставить решётку в autorun.cfg перед указанной командой. Но это уже для твоего частного случая. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10262 Location: Россия, Саратов
|
(Separately) Posted: Thu Mar 07, 2013 18:08 Post subject: |
|
|
Flasher wrote: | Это Avada написал, что погоняет на других машинах, но так, по всей видимости, и не погонял.. |
Подробный анализ требует времени, которого у меня пока в достаточном количестве нет. Кое-что, впрочем, сообщить могу.
Упоминавшаяся уже утилита ReloadTC, да, не работает в 64-битном TC, но зато обладает одним весьма ценным качеством, которого я у конкурентов не наблюдаю. Поясню на примере.
Допустим, у нас есть TC, который в норме запускается без всяких специальных параметров, с подхватыванием INI-файла, лежащего в папке TC. Допустим также, что предусмотрен вызов (в том числе через ярлык) того же самого TC с минимальными настройками, близкими у умолчальным. Для такого тестового запуска значениями параметров /I и /F указаны другие INI-файлы.
Итак, ярлыком запускается (с параметрами) тестовая версия TC. Создадим там кнопку для перезапуска. Если в ней используется ReloadTC, он именно этот самый TC с этими самыми параметрами опять и перезапустит. Если используются средства, где указана переменная %Commander_EXE%, после закрытия окна тестового TC запущен будет другой, полнофункциональный вариант той же копии TC (тот же экзешник, но без параметров и, следовательно, с другими INI-файлами). И скрипт, и Tinny TC Restarter работают именно так.
Интересно, можно ли тут совместить обе полезности?
На форуме проблема анализа командной строки поднималась, к примеру, здесь, но это было очень давно. Что с тех пор изменилось? Что можно сделать сейчас при запуске утилиты/скрипта из текущей копии TC? Для основного файла настроек есть переменная %COMMANDER_INI%. Для настроек FTP аналога нет, но этим в первом приближении пока что можно пренебречь. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Mar 07, 2013 18:36 Post subject: |
|
|
Avada wrote: | ReloadTC, он именно этот самый TC с этими самыми параметрами опять и перезапустит. | "Этот самый" он запустить никак не может, он аналогично создаёт новый процесс, ибо старый уже был захлопнут.
Avada wrote: | %Commander_EXE%, после закрытия окна тестового TC запущен будет другой, полнофункциональный вариант той же копии TC (тот же экзешник, но без параметров и, следовательно, с другими INI-файлами). И скрипт, и Tinny TC Restarter работают именно так. | В моём случае не без параметров, а с параметрами, но не теми, с какими был запущен Тотал через ярлык.
Avada wrote: | можно ли тут совместить обе полезности? | Совмещение противоречит сути возврата, т.к. ТС запускается с определёнными параметрами /L= /R= /P=L/R, которые также могут фигурировать в активном ТС.
Если речь идёт только об /I и /F, то, в принципе, их вытащить и подставить в комстроку можно, только в данном случае PID из Auotorun точно потребуется. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10262 Location: Россия, Саратов
|
(Separately) Posted: Thu Mar 07, 2013 18:41 Post subject: |
|
|
Flasher wrote: | Если речь идёт только об /I и /F, то, в принципе, из вытащить и подставить в комстроку можно, только в данном случае PID из Auotorun точно потребуется. |
Да, речь идёт только об этом. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Thu Mar 07, 2013 23:45 Post subject: |
|
|
Flasher
Quote: | А где я отменял актуальность? |
Нигде.
Quote: | Сомневаюсь, что тебе такое понравится, да и остальным тоже. |
Тоже сомневаюсь. Тогда для себя не вижу смысла в использовании скрипта. Желаемый результат с ним получается не всегда - не будешь же каждый раз следить где находится курсор (на файле или на каталоге) при перезапуске. _________________ Win11 x64 Eng | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Mar 08, 2013 01:15 Post subject: |
|
|
Avada
Ясно. Сделать - сделаю, но вот только не знаю, как быть - править старый пост или запостить MIME?
LonerD
Весьма странная попытка увидеть смысл использования только там, где всё без исключения работает. Может, и от ТС откажешься?
Любой иной перезапуск тебе такого возврата не сделает. Утеривать текущие позиции (в архивах, в системных плагинах, в виртуальных папках, в заблокированных вкладках) лично мне никакого удовольствия после перезапуска, которым я частенько пользуюсь, не доставляет. Если тебе доставляет, не вопрос, юзай простейшие варианты (уже давно мне неинтересные). Суть скрипта прежде всего в запоминании открытых псевдо/папок, мысль о позиции курсора на файлах возникла сравнительно недавно. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Fri Mar 08, 2013 03:46 Post subject: |
|
|
Flasher
Quote: | Может, и от ТС откажешься? |
Нет.
Quote: | перезапуска, которым я частенько пользуюсь |
У меня Тотал иногда сутки и более не закрывается и не перезапускается.
Quote: | Суть скрипта прежде всего в запоминании открытых псевдо/папок, мысль о позиции курсора на файлах возникла сравнительно недавно. |
Мне до твоего скрипта ни одна ни вторая мысль даже не приходили, потому пока не осознал все удобства этого метода.
Quote: | Единственное, что можно делать, чтобы оставлять курсор на папках, это входить и выходить из них (причём менять фокус, если папки в обеих панелях). Сомневаюсь, что тебе такое понравится, да и остальным тоже....
Тоже сомневаюсь. |
PS. Уже не так сомневаюсь.
Я ведь твоим скриптом перехода к закладкам (в том числе если закладка стоит на папке) пользуюсь - нравится _________________ Win11 x64 Eng | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10262 Location: Россия, Саратов
|
(Separately) Posted: Fri Mar 08, 2013 10:04 Post subject: |
|
|
Flasher wrote: | Ясно. Сделать - сделаю, но вот только не знаю, как быть - править старый пост или запостить MIME? |
Мне, честно говоря, без особой разницы. Ну, пускай MIME будет. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Mar 08, 2013 18:11 Post subject: |
|
|
LonerD wrote: | Мне до твоего скрипта ни одна ни вторая мысль даже не приходили, потому пока не осознал все удобства этого метода. | Наверно, частично заблокированными вкладками вообще не пользуешься и в архивы почти не заходишь. Если бы пользовался, сразу понял бы всю соль, ибо перезапускать при перенастройках ТС (автозагрузки, плагинов) просто необходимо. Перезапуски также требуются при перезаполнении памяти, багах и висах.
LonerD wrote: | Я ведь твоим скриптом перехода к закладкам (в том числе если закладка стоит на папке) пользуюсь - нравится | Я не думаю, что поведение будет аналогичное, как и при активном окне ТС. Не пробовал ещё блокировать окно только при его появлении. Могут быть артефакты, и некоторая задержка добавится. Ладно, посмотрю, как можно грамотней реализовать. Если получится криво, то выкладывать не буду.
Avada
Собственно, обойдусь без Autorun-a, так что можно и обновить.
Такой вопрос. На данный момент мы задаём ini в отдельной переменной. А что если в ini-файле, задаваемым через ключ, нет редиректа, или он ведёт на другой ini-файл с историей?
И как ведёт себя ReloadTC, если писать к файлам конфигурации не путь целиком, а только имя файла?
P.S. И не пора бы уже тему, прямо касаемую автоматизации, перенести в нужный подфорум? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10262 Location: Россия, Саратов
|
(Separately) Posted: Fri Mar 08, 2013 20:15 Post subject: |
|
|
Flasher wrote: | На данный момент мы задаём ini в отдельной переменной. А что если в ini-файле, задаваемым через ключ, нет редиректа, или он ведёт на другой ini-файл с историей? |
В моём случае — именно что нет. Да, такие варианты надо учесть.
Flasher wrote: | И как ведёт себя ReloadTC, если писать к файлам конфигурации не путь целиком, а только имя файла? |
Я, конечно, могу проверить специально, но у меня в параметрах TC указывается не только другое имя, но и другой путь (вообще на другом диске).
Кстати, у ReloadTC могут быть собственные параметры, в том числе и для INI-файлов. Если они используются (у меня — нет), то подменяют стандартные (это есть в документации утилиты).
Flasher wrote: | И не пора бы уже тему, прямо касаемую автоматизации, перенести в нужный подфорум? |
Безусловно, пора, и я это делаю. Общая тема по перезапуску TC необходима, но её действительно логично и правильно держать в "Автоматизации". _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Strek
Joined: 17 Oct 2010 Posts: 189
|
(Separately) Posted: Tue Mar 12, 2013 18:45 Post subject: |
|
|
У меня exe-шка на AutoIt, с таким кодом:
Code: |
Global $title
if processexists("TOTALCMD64.EXE") then
$title = _Process2Win("TOTALCMD64.EXE")
WinClose($title)
Run("Путь к папке\TOTALCMD.exe")
elseIf processexists("TOTALCMD.EXE") then
$title = _Process2Win("TOTALCMD.EXE")
WinClose($title)
Run("Путь к папке\TOTALCMD64.exe /i="Путь к папке\WinCmd64.ini")
endif
func _Process2Win($pid)
if isstring($pid) then $pid = processexists($pid)
if $pid = 0 then return -1
$list = WinList()
for $i = 1 to $list[0][0]
if $list[$i][0] <> "" AND BitAnd(WinGetState($list[$i][1]),2) then
$wpid = WinGetProcess($list[$i][0])
if $wpid = $pid then return $list[$i][0]
EndIf
next
return -1
endfunc
|
Источник AutoIt-Script.Ru |
|
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
|