Autorun

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

MVV писал(а):Думаю, можно не утруждать себя парсингом кучи имен в одной команде, нагляднее будет, если будет несколько строчек с TerminateProcess.
Как раз несколько штук парсить - не проблема. И никто не мешает использовать несколько команд с одним параметром.
MVV писал(а):А вот поддержка масок бы скорее всего не помешала.
Посмотрим.
MVV писал(а):Еще, думаю, могла бы быть полезной функция убийства процесса по заголовку или классу окна. Хотя, для решения таких задач есть более специализированные решения.
Ну как бы да, второй Autoit писать не хочется.
HA3APET
Сообщения: 151
Зарегистрирован: Пн фев 22, 2010 05:43

Сообщение HA3APET »

MVV писал(а):Неужели появляющаяся на секунду кнопка панели задач так мозолит глаза?
Свёрнутый батник висит на протяжении всей работы с ТС, или вы задумывали не так?
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

HA3APET писал(а):
MVV писал(а):Неужели появляющаяся на секунду кнопка панели задач так мозолит глаза?
Свёрнутый батник висит на протяжении всей работы с ТС, или вы задумывали не так?
Конечно не так. Если батник завершает работу, его окно должно закрываться. И вообще, я ничего не задумывал, это всё лежит на системе.

Проги из батника надо запускать командой start (start "" "x:\path\to\program.exe"), чтобы они запускались в фоне, иначе батник будет ожидать их завершения.

Также надо убрать команды pause из батника, вставленные для наглядности. :roll:
HA3APET
Сообщения: 151
Зарегистрирован: Пн фев 22, 2010 05:43

Сообщение HA3APET »

MVV
pause конечно убрал, а вот запускал не через start, спасибо теперь всё ок. Ещё перевёл bat в exe и наконец то добился чего хотел.

Обнаружилась одна проблема. Если открыть TC и перейти в Сеть/FS-плагины, то батник не отрабатывает второй раз при закрытии ТС, а следовательно программа не закрывается.

Код: Выделить всё

@echo off
title Starter
if -%1==-0 goto starter_load
if -%1==-1 goto starter_unload
goto :EOF

:starter_load
start "" "%commander_path%\Camper.exe"
echo Loading...
goto :EOF

:starter_unload
taskkill /T /IM Camper.exe
echo Unloading...
goto :EOF
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Можно, но просто не хочется тратить время на временные решения.
Всё-таки возмёшься за autorun? Просто с библиотекой всё вышло бы значительно быстрее. Ну, смотри.
Loopback писал(а):Не лучше, потому что неудобно с точки зрения парсинга.
Почему? После оригинального тега парсишь построчно. А ты предлагаешь всё в одну строку пихнуть, или перенос строки будет также учитываться как завершающий строку с параметрами ключ?
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

HA3APET писал(а):Обнаружилась одна проблема. Если открыть TC и перейти в Сеть/FS-плагины, то батник не отрабатывает второй раз при закрытии ТС, а следовательно программа не закрывается.
Не знаю, это не должно влиять на то, как система выгружает процессы.
А если вернуть оригинал, который запускает батник, и оригинальный батник из архива, его кнопка будет появляться на панели задач при закрытии тотала?
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Всё-таки возмёшься за autorun? Просто с библиотекой всё вышло бы значительно быстрее. Ну, смотри.
Да вроде как спешки-то и нет. Жили же без этой функции? :wink:
Flasher писал(а):Почему? После оригинального тега парсишь построчно.
Потому что так сделан парсер. Одна строка - одна команда. Это кардинально упрощает парсинг. С разбиванием гемора не оберешься, да и не нравится мне так.
Flasher писал(а):А ты предлагаешь всё в одну строку пихнуть, или перенос строки будет также учитываться как завершающий строку с параметрами ключ?
Выше уже с MVV обговаривали этот момент. Хочешь - несколько параметров в одной команде, хочешь - несколько команд. Может еще как-нибудь, но без многострочности.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Да вроде как спешки-то и нет. Жили же без этой функции?
Как и без всего остального, и без autorun-a в своё время...
Loopback писал(а):Хочешь - несколько параметров в одной команде, хочешь - несколько команд. Может еще как-нибудь, но без многострочности.
А если я хочу несколько команд с параметрами, тогда что? Без многострочности - плохо для конечного юзера. Правка одной строки крайне неудобна, даже с переносом в редакторе. Неужели так трудно обрабатывать 0Ah?
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Как и без всего остального, и без auotrun-a в своё время...
Ну так появился же. Всё появится, рано или поздно, так или иначе...
Flasher писал(а):А если я хочу несколько команд с параметрами, тогда что?
И в чем проблема? Записываешь несколько команд с параметрами.
Flasher писал(а):Без многострочности - плохо для конечного юзера. Правка одной строки крайне неудобна, даже с переносом в редакторе. Неужели так трудно обрабатывать 0Ah?
Для многострочности есть Autoit, AHK, VBS и куча других полноценных скриптовых языков. Autorun на это звание не претендует.

В Autorun конец строки является однозначным маркером завершения команды. Если ограничение убрать, что парсер должен делать в такой ситуации?

Код: Выделить всё

ShellExec "program.exe"
bla "my dir"
Считать bla "my dir" продолжением команды или ошибочной строкой с мусором?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):И в чем проблема? Записываешь несколько команд с параметрами.
И как же парсер отличит exe/bat/au3/vbs/... в качестве параметра от команды?
Loopback писал(а):Считать bla "my dir" продолжением команды или ошибочной строкой с мусором?
Если это параметр, то строкой с мусором, он же не на одной строке с program.exe.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):И как же парсер отличать exe/bat/au3/vbs... в качестве параметра от команды?
Эээ. Ты вообще про что? Мы же вроде про команду завершения процессов говорили. Какие еще параметры?
Flasher писал(а):Если это параметр, то Строкой с мусором, не на одной строке же с program.exe.
Не катит. Любая команда/функция должна иметь маркер начала и маркер конца. Без этого парсер не поймет, где заканчиваются данные, относящиеся к этой команде, особенно это критично для команд с необязательными параметрами. В Autoit маркером конца является закрывающая скобка ), в Autorun - перевод строки.

На этом предлагаю закрыть тему с многострочностью. В существующем виде я все равно не вижу пути ее реализации.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Эээ. Ты вообще про что? Мы же вроде про команду завершения процессов говорили. Какие еще параметры?
Ты сам про них написал. Я так понял, что ты имел в виду существующий парсер для ShellExec. Вот я и спрашиваю, как парсер при написании путей к exe-файлам в кач. параметра отличит их от путей к вызываемым прогам, если и те и другие написаны в одну строку?
Loopback писал(а):Не катит. Любая команда/функция должна иметь маркер начала и маркер конца. Без этого парсер не поймет, где заканчиваются данные, относящиеся к этой команде, особенно это критично для команд с необязательными параметрами. В Autoit маркером конца является закрывающая скобка ), в Autorun - перевод строки.
Так придумай новые маркеры. Сделай, чтобы для списка программ использовался перевод строки в качестве разделителя, а для основной команды открывающий и закрывающий маркер, например, символ "&".
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Так придумай новые маркеры
Это приказ? :wink:
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Это предложение, которого может очень качественно отразиться на юзабильности при добавлении утилит/программ к общему списку. :wink:
А её лучше начинать новую команду autorun-a с "кавычка + перевод строки", но списки обрабатывать по "новый маркер + перевод строки". Как такая мысль?
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Ради 1 (одной) функции (которой, кстати, еще даже нет) и удобства работы со списком из десятка программ, ты мне предлагаешь убить не один час работы, полностью изменить идеологию работы плагина и похоронить прозрачность работы с ним. Я пока к этому не готов.
Ответить