Autorun

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

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

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

Сообщение Loopback »

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

Сообщение MVV »

Согласен, такие мелочи вполне можно реализовать в самом плагине.

Кстати, как вариант, плагин может устанавливать некоторые переменные окружения:) типа разрядности, языка интерфейса системы, языка не-Юникодных программ. Правда, над именами подумать надо.
Ну уж нет, я лучше тогда две разные команды сделаю - типа ShellExecute и ShellExecuteWait
Не, параметр /WAIT реально красиво будет смотреться. И это действительно реализуется посредством той же функции, но с дополнительным флагом (не закрывать дескриптор), поэтому нет смысла в другом названии.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Выложил релиз 1.5.0. Что нового (для тех кто не следил за веткой):
+ переменные (Set)
+ информационные константы
+ условное выражение
+ команда LoadFont
+ перевод сообщений
+ флаги /W, /T, /TT для ShellExec
* изменен CommandExec (внутреннее изменение)

Поддержка x64 предположительно будет в следующей бете.
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

Loopback писал(а):+ команда LoadFont
А разве этой команды не было ранее? :? Помнится, кто-то мне тыкал на загрузку шрифтов с Autorun...
Loopback писал(а):Поддержка x64 предположительно будет в следующей бете.
Надеюсь, скоро...
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

ask-rus писал(а):А разве этой команды не было ранее?
Была. Так я и написал - для тех кто не следил. Своего рода компиляция истории.
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

Loopback писал(а):
LonerD писал(а):Раз сейчас нет такой возможности - то просьба на будущее ввести возможность обработки текстовых файлов (ini,cfg), в которых нет разделения на секции.
Вопрос "обработки" произвольных файлов слишком обширен. Что понимается под обработкой? Вставить после определенной строки или вставить по заданному смещению в файле? Вставить с замещением или нет? Файл бинарный или текстовый? Если текстовый, то какая кодировка файла?

Одной-двумя командами всё многообразие действий над файлами не покроешь. В общем, такие задачи все же лучше решать полноценным скриптовым языком.
Например, реализовать такие операции.
Для текстовых файлов:
- удалить n-ю строку из файла
- вставить строку перед (или после n-й) без замещения
- вставить строку на место n-й , с замещением.
Для текстовых и произвольных файлов:
- удалить определённый текст/набор символов
- заменить определённый текст/набор символов на другой

Пример использования:
При первом запуске Тотала нужно выполнить некоторые действия, прописанные в autorun.cfg, а затем нужно отредактировать autorun.cfg, чтобы при следующих запусках происходили другие действия.

А может, существует какая-то миниатюрная консольная утилитка, которая может осуществлять описанные не особо сложные действия с произвольными (или хотя бы текстовыми) файлами? Nircmd может только ini править.
Loopback писал(а):
LonerD писал(а):Поддерживается ли в операторах сравнения конъюнкция и дизъюнкция?
Нет. Может быть в будущем, но не в этой версии точно.
Как это нет? В теме уже писали - поддерживается, только нужно брать выражения в скобки. Я тоже проверил - вроде работает.
Аватара пользователя
ApceH
Сообщения: 316
Зарегистрирован: Пт апр 08, 2011 17:58
Откуда: Димитровград

Сообщение ApceH »

LonerD писал(а):существует какая-то миниатюрная консольная утилитка, которая может осуществлять описанные не особо сложные действия с произвольными (или хотя бы текстовыми) файлами?
sed, awk, perl ;) Под винду есть, а вот портабл не факт.
Я реализую это всё в kIT UP в секциях [t...
Если реально надо и будет востребовано, то могу в октябре уже.
kIT Programs PowerPack, kIT Universal Presets | Есть только одна истинная вера: чёрная магия...
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

LonerD писал(а):Например, реализовать такие операции.
В основной плагин я это точно включать не буду, слишком специфические задачи, и чувствую, список будет расширяться до бесконечности.

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

Сообщение MVV »

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

Сообщение MVV »

Loopback, я вначале думал, что ошибка в определении пути загрузки, но потом понял, что ошибка в отображаемом пути. Смотри, прописываешь в конфиг строчку LoadLibrary /U D:\123.dll и запускаешь тотал. В сообщении говорится, что не может быть загружен модуль D:\TOTALCMD\Plugins\Content\Autorun\D:\123.dll. Исправь, пожалуйста. :)
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

MVV
А библиотека-то существует? Просто сначала делается попытка использовать заданный путь как абсолютный, а потом как относительный.

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

Сообщение MVV »

Такой глюк наблюдается как раз при отсутствии библиотеки. Если проверяются оба варианта пути, то ладно, но сообщение об ошибке должно соответствовать действительности.

В любом случае, проверить, абсолютный ли путь, очень просто: сравнить второй символ пути с двоеточием. Сравнить путь с сетевым тоже несложно - два первых символа будут '\'. Все остальные пути можно смело считать относительными и приписывать к ним путь к папке Autorun. :) И вполне можно выделить это в одну функцию, или просто выводить в сообщении непосредственно ту же строку, которая передавалась в LoadLibrary.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

MVV
Ясно, исправлю.

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

Сообщение MVV »

Loopback, с Лазарусом ещё не пытался подружиться? Хорошо бы для 64-битной версии тотала тоже скомпилить плагин. Но надо как-то продумать возможность использования одного файла конфигурации, но так, чтобы можно было помимо общих строчек задавать строчки для конкретно 32-битной или 64-битной версии (например, чтобы можно было для 32-битной грузить TCFS2Tools.dll, для 64-битной - TCFS2Tools.dll64).
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

MVV
Сейчас этим и занимаюсь, правда не с Лазарусом. Файл конфига будет один, с плагинами - как у Гислера:под х64 сначала будет искаться *.dll64. В принципе уже всё работает, только в MoveButton под х64 косяки какие-то с координатами.
Ответить