Страница 7 из 243
Добавлено: Ср ноя 17, 2010 20:13
MVV
Flasher писал(а):MVV писал(а):А чтобы записать пустое значение, а не удалять ключ, можно указывать "" как значение этого параметра.
А разве под первым предложением "без текста .. использовать" не это подразумевалось?
Под чьим и каким первым предложением? Моя мысль была о том, что для очистки значения параметра вполне можно передавать пустую строку как новое значение. А для удаления - вообще не указывать новое значение.
Кстати, виндовая функция для записи значений в INI так и работает - передаешь ей пустой указатель - удаляет параметр из файла. А передаешь указатель на пустую строку - просто очищает значение без удаления параметра.
И, тоже кстати, если этой функции передать пустой указатель на имя параметра в секции, она удаляет всю секцию - так что нового кода даже писать не придется, лишь позволить текущему коду обрабатывать отсутствие
двух последних параметров функции, т.е. новый синтаксис должен быть таким:
Код: Выделить всё
IniWrite [/EV] <имя ini> <секция> [<ключ> [<текст>]]
При этом, если какой-то из последних параметров не задан, в функцию WritePrivateProfileString передается пустой указатель (
0, он же
NULL, он же
nil). И упомянуть в Readme, что при отсутствии двух последних параметров вся указанная секция будет уничтожена.
Добавлено: Ср ноя 17, 2010 21:16
Loopback
MVV
MVV писал(а):Моя мысль была о том, что для очистки значения параметра вполне можно передавать пустую строку как новое значение. А для удаления - вообще не указывать новое значение.
Сходу так не получится. Дело в том, что сейчас команда, получающая от парсера параметры, не различает - был это пустой параметр или отсутствовал вообще. Конечно, это можно изменить, но не вижу смысла всё усложнять.
В любом случае, считаю более резонным иметь отдельную функцию для удаления - просто во избежание ошибок, в результате которых могут потеряться целые секции. А так мнемонически будет понятно.
Добавлено: Ср ноя 17, 2010 23:15
sa
MVV писал(а):Кстати, теперь каждый может написать плагин для Autorun и добавить нужные команды.
[off]Можно ведь воспользоваться при вызове Autorun и уже написанной утилитой TCFS2

, если уже её автор добавит туда возможность удалять ключ к уже имеющейся возможности задавать/модифицировать ключи. Тем более что в TCFS2 это можно будет делать в зависимости от значений других ключей. [/off]
Добавлено: Ср ноя 17, 2010 23:33
Flasher
[off]
sa писал(а):Тем более что в TCFS2 это можно будет делать в зависимости от значений других ключей.
С важной поправкой - только от числовых. Пока, надеюсь.
[/off]
Добавлено: Чт ноя 18, 2010 00:42
MVV
Дело в том, что сейчас команда, получающая от парсера параметры, не различает - был это пустой параметр или отсутствовал вообще.
Параметры просто как String передаются, да? Тогда да, разницу не почувствуешь. С другой стороны, можно ввести некую константную строку, которая будет обозначать отсутствие параметра - например, строку из единственного символа
chr(26) (т.е. символа конца текстового файла). А ещё мысль - добавить флаги для команды (которые указываются перед параметрами). Например,
/D для удаления параметра и
/DS для удаления секции - а уже функция будет разбираться, передавать
nil или указатели на строки.
[off]Я, конечно, всё понимаю, но если вы мне поясните, какое отношение имеет функция удаления ключей INI к переключению тотала в полноэкранный режим (не здесь, разумеется, а в теме про TCFS2), тогда можно будет вести разговор об уместности функции в TCFS2.[/off]
Кстати,
тут есть миниатюрная утилита для работы с INI из командной строки - удалять секции целиком умеет.
Добавлено: Чт ноя 18, 2010 00:55
Flasher
[off]
MVV писал(а): но если вы мне поясните, какое отношение имеет функция удаления ключей INI к переключению тотала в полноэкранный режим
К переключению ТС в полноэкранный режим эта функция никакого отношения не имеет, как и ряд других
функций/команд ТСFS2. Так что и объяснять нечего.

В любом случае без обработки текстовых полей от этой функции для меня не будет ровным счётом никакого толку.
[off]
За сайт спасибо. Несколько полезных вещей обнаружил.

Добавлено: Чт ноя 18, 2010 10:27
Loopback
MVV
Всё, конечно, можно сделать и так. Вопрос - зачем? Ну ладно, майкрософт использовала для записи и удаления единую функцию WritePrivateProfileString, зачем эту нелогичность дальше-то тянуть?

Все же в моем понимании запись и удаление - это довольно разные вещи.
Добавлено: Чт ноя 18, 2010 18:55
MVV
В принципе, согласен. Тогда добавить команду
IniDelete с двумя параметрами - обязательным именем секции и необязательным именем параметра.

Добавлено: Вс ноя 21, 2010 14:42
Andrey_A
Спасибо автору за плагин. Недавно подключил функционал Autorun_HideMenu.dll. Очень понравился. Появилось несколько вопросов и просьб, если конечно утилита развивается...
1. Хотелось бы иметь возможность подключать параллельно главному меню ещё одно меню. Как известно меню имеет ограничение в отображении 2000 пользовательских команд. Но даже не достигая этого ограничения, есть достаточно много тем (направлений),которые просто не вмещаются в одну строчку главного меню... даже в две не вмещаются. (файл, вид, навигация, инструменты, архивы, плагины, утилиты, сеть, система, папки, справка... и.т.д)
Если была бы возможность часть главного меню перенести во вспомогательное, которое бы вызывалось в авторане, через HideMenu:
MainMenuTwoPath="%COMMANDER_PATH%\Language\Wcmd_Rus_2.mnu"
ShowMainMenuTwo=65600
2. По поводу отображения меню. Я так полагаю, что это всё делается для увеличения пространства ТС, Можно отображать меню в виде полосы в самом вверху между значком ТС и кнопками (свернуть...)

Можно ли это реализовать - не знаю (где-то я видел утилиту, которая прилеплялась к верху)
Или отображать строку доп. меню внизу - чуть выше (F3,F4,А5...)
Есть ещё ряд хотелок, но это в процессе, если конечно это будет кому-то интересно
Добавлено: Вс ноя 21, 2010 15:30
Serge Yolkin
У AvantBrowser меню в заголовке окна. Пользуюсь. Удобно. Только, для TC такую фичу лучше бы отдельным плагином/утилитой реализовать. Немного раздражают швейцарские ножички (совпадение родины автора TC и страны-производителя ножичков - случайно).
Добавлено: Вс ноя 21, 2010 15:42
Flasher
Andrey_A писал(а):Можно ли это реализовать - не знаю (где-то я видел утилиту, которая прилеплялась к верху)
Можно, и эта тема явно для TCFS2. Именно по этой причине она и начинала создаваться по моему запросу.

И плагин HideMenu к этому отношения не имеет. Он создавался для режима FullScreen, т.е. полного убора каких-либо элементов окна ТС кроме файловых панелей.
По поводу дополнительных меню пусть
MVV сам откомментирует, боюсь попастся под его горячую..

И опять же это должно обсуждаться в
этой ветке.
Добавлено: Вс ноя 21, 2010 16:17
MVV
Два главных меню - никак. Контекстных может быть сколько угодно, но кто будет парсить их? В случае с "родным" меню тотала он читает файл меню и создает само меню, а я лишь "скрываю" его. Второе меню же придется обрабатывать целиком и полностью мне, а это чересчур много работы.
Я так полагаю, что это всё делается для увеличения пространства ТС, Можно отображать меню в виде полосы в самом вверху между значком ТС и кнопками (свернуть...)
Куда проще в плане реализации скрыть меню и показывать при необходимости, по хоткею или по кнопке панели инструментов. Потому что главное меню там, где оно у тотала, поддерживается на уровне системы еще с Windows 95, а в любом другом месте - это уже не меню, а лишь его имитация, полностью реализованная программистом.
Добавлено: Вс ноя 21, 2010 16:39
Flasher
MVV писал(а):главное меню там, где оно у тотала, поддерживается на уровне системы еще с Windows 95, а в любом другом месте - это уже не меню, а лишь его имитация, полностью реализованная программистом.
Вот именно этого комментария я и ожидал.

Добавлено: Вт ноя 23, 2010 19:05
Andrey_A
Serge Yolkin писал(а):Только, для TC такую фичу лучше бы отдельным плагином/утилитой реализовать
Не подскажите у кого попросить, кто бы взялся?
MVV писал(а):Два главных меню - никак. Контекстных может быть сколько угодно
MVV Подскажи, пожалуйста, как ты реализуешь контекстные меню?
По поводу плагина Autorun. Поделитесь опытом, кто что запускает вместе с Totalом? Я понимаю, что ответ может быть один - кто что хочет, то и вносит, но всё же...
Добавлено: Вт ноя 23, 2010 19:22
Flasher
Andrey_A писал(а):Не подскажите у кого попросить, кто бы взялся?
У нас только один тут такой "швейцарский ножичек", имя ему TwinKey, только я заранее знаю, что автор за это браться не будет.
Andrey_A писал(а):Подскажи, пожалуйста, как ты реализуешь контекстные меню?
Так он не реализует их. Он пишет, что можно реализовать. А пока только одно. Из ReadMe > TrackMainMenu=65540.