Autorun

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

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

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

Сообщение Loopback »

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

Сообщение Flasher »

Loopback писал(а):Впрочем, вполне можно было и не заметить.
Ага, не заметил, вроде планы обычно в конце пишутся, даже не обратил внимания на последующие заголовки.

Замечания по ReadMe
Опечатки:
Стандартный таймаут ожаидания (дважды)
имя библиотеки с раСширением "dll" (отсутствие С)
Кстати, не очень понятно, что такое "таймаут ожидания"? Это не тавтология?
В нескольких местах фигурирует "тотал" с маленькой буквы.

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

Сообщение MVV »

Думаю, комментарии лучше не трогать. Для директив можно завести функцию типа Pragma, которой в параметре указывать саму директиву. И парсить легко, и подсветку синтаксиса можно сделать для выделения таких строк, скажем, красным цветом, и не путать их с комментариями.

А для точки, после которой идут команды завершения, надо завести внутреннюю функцию с именем SuspendUntilTerminate, WaitForTermination, WaitForExit или типа того (типа, на ней выполнение скрипта "замораживается" до завершения работы тотала), или же Pragma-директиву: Pragma WaitForTermination, Pragma FinalizeSection и т.п. Парсинг имен функций и параметров по идее уже есть в плагине, не придётся дописывать ничего нового.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):WaitForTermination, WaitForExit или типа того
Тоже хотел написать, важная вещь.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Не, я имел в виду не опцию ожидания завершения запущенных процессов, а ожидание выгрузки плагина тоталом, т.е. закрытия тотала. Ожидание завершения процессов - это уже параметры запуска этих самых процессов.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Историю и Планы стоит сместить вниз для удобства перехода к основному описанию.
Только вчера об этом подумал, а то история разрослась уже.
Flasher писал(а):Не очень понятно, что понимается под использованием кавычек в тексте параметра.
Я думаю к релизу переведу справку в html, как и в других плагинах, там можно будет сделать выделение цветом для большей понятности. Ну и перефразировать заодно.
Flasher писал(а):Вот я и пишу про поиск. Фильтрация-то начинается с первого символа - решётки.
Я в том смысле, что никакой разницы в накладных расходах на поиск нет.
MVV писал(а):Думаю, комментарии лучше не трогать. Для директив можно завести функцию типа Pragma, которой в параметре указывать саму директиву. И парсить легко, и подсветку синтаксиса можно сделать для выделения таких строк, скажем, красным цветом, и не путать их с комментариями.
Ну понятно, кому что ближе :) В С++ используется #pragma, в паскале - директивы в фигурных скобках, типа {$E wdx}, что по-сути комментарии.
В принципе я сначала и хотел сделать такую псевдофункцию, но как-то не придумалось достойное имя. Если появится хорошая идея - можно и переделать. Можно и Pragma, но оно по-моему не дает очевидного представления о назначении функции. Ну и вообще, все же хотелось бы, чтобы директивы отличались от функций.

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

Сообщение MVV »

Lingvo писал(а):pragma
указание транслятору, псевдокомментарий
По-моему, очень даже в точку. :)

Символов можно на выбор взять целую кучу. Можно @, $, ~. Но слово pragma по-моему хорошо бы подошло, и приметное, и осмысленное. В паскале эти комментарии хрен отличишь от обычных...

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

Сообщение Flasher »

Loopback писал(а):$ например?
Пойдёт.

А можно прояснить момент с последовательным запуском процессов по ShellExec? Необходим параметр WaitOnReturn для возобновления вызова последующих команд только после завершения вызванного процесса. Или это по умолчанию предусмотрено? Иначе без этого ряд вещей работает некорректно.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

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

Сообщение MVV »

Ну, наверно технический словарь. В обычном оно не переводится. Ладно, подумаю.
Хз, что тут за словарь, а у меня оно есть в словарях Computers, LingvoComputer и Polytechnical. В общих вообще очень большой кучи милых нашему уху слов нет. А посмотри, как в общем словаре переводится file, долго будешь смеяться. :D
На раннем этапе обычно никогда не удается спланировать всё идеально. А сейчас уже приходится подгонять под имеющиеся реалии. Если посмотреть, то AutorunBlockUnload как раз бы хорошо смотрелся директивой.
Согласен. Думаю, можно даже придерживаться такой схемы: глобальные директивы называются Autorun..., а локальные, если будут - с другой приставки.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

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

Сообщение Flasher »

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

Сообщение Loopback »

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

Сообщение Flasher »

Loopback
Понял. Ценная вещь. Благодарю! Давно ждал. :)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Десятая бета.

Скачать

В основном в ней сведены последние решения, идеи и исправления.

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

+ Дополнительные примеры использования кавычек в справке
+ Документирован параметр /WAIT в функции ShellExec
* AutorunBlockUnload теперь используется в Pragma (функция оставлена для совместимости)
* FinalizeSection переименовано в AutorunFinalizeSection и используется в Pragma
+ Ключевое слово Pragma для работы с директивами
* FileExist работает с каталогами с завершающим "\"
Ответить