Еще раз про меню Пуск

Хотите предложить идею нового плагина или знаете, что улучшить в существующем? Пишите сюда.
Post Reply
Maximus
Posts: 31
Joined: Thu 08 Oct, 2009 15:20

Еще раз про меню Пуск

Post by Maximus »

Хочется, чтобы каким-то решением объединялись пункты Пуск от пользователя и от машины и как-то показывались (в смысле не как-то, а как любое файловое содержимое). То есть я обычно напрочь не помню (не знаю) куда поставлена программа (машина, пользователь) и поэтому хочется, чтобы то, что делает винда или даже лучше (то есть сортировка как в Far-е выбрано) происходило прямо в Far-е. Подозреваю, что все решения упомянутые (Named Folders, пользовательское меню итд) не решают проблему по сути. Или я неправ?

Еще раз, речь о тупом миксе двух папок

All Users\Start Menu\Programs
[Текущий пользователь]\Start Menu\Programs

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

Заранее спасибо за мнения/решения
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Re: Еще раз про меню Пуск

Post by Kildor »

брр. А по русски можно? Ничего не понял, если честно.
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
Maximus
Posts: 31
Joined: Thu 08 Oct, 2009 15:20

Re: Еще раз про меню Пуск

Post by Maximus »

Попробую с непорусского на русский )
Содержимое кнопки Пуск - это не одна папка, правильно, это как минимум две (те, что указал). Всегда, когда хочется в фаре содержимое это увидеть, первая мысль - сделать быстрый переход. Но переход куда? Ведь нет "файлового" места, где содержимое этих папок было бы объединено в один список, это же Explorer сам делает (если я не ошибаюсь конечно), вот и первая мысль - специализированный плагин, который это делает (возможно в стиле EMenu). А вторая это более обобщенно плагин, в которомм каждому пункту (перехода) можно поставить в соответствие одну или более папок, содержимое которых будет объединяться. Последнее еще не знаю для чего нужно, но зато все-таки обобщенная функциональность, полезная хотя бы для задачи "Пуск"
Уж простите если это тоже вышло не по-русски ) Тогда придется со словарем ))
User avatar
HaRT
Moderator
Posts: 10866
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Еще раз про меню Пуск

Post by HaRT »

Это просится в плагин Временная панель.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Maximus
Posts: 31
Joined: Thu 08 Oct, 2009 15:20

Re: Еще раз про меню Пуск

Post by Maximus »

HaRT wrote:Это просится в плагин Временная панель.
И правда, причем уже сейчас содержимое этих двух папок можно отправить туда руками, после чего выбрать Medium Panel Mode и все выглядит так как надо. Хм... Может тогда проще макрос написать, который эти действия осуществляет?
Maximus
Posts: 31
Joined: Thu 08 Oct, 2009 15:20

Re: Еще раз про меню Пуск

Post by Maximus »

Вот тут сразу возникла мысль, что если бы временная панель могла бы принимать в качестве списков файлов (file list) строчки с масками, то задача бы практически решалась бы следующим файлом

С:\Documents and Settings\[Пользователь]\Start Menu\Programs\*.*
С:\Documents and Settings\All Users\Start Menu\Programs\*.*

Конечно чтобы исключить конфликты можно сделать настройку, которая одобряет такой синтаксис. Ну и открытый вопрос с вложенным сканированием. Потому что в сабжевом случае нужно брать папки и файлы, но без захода внутрь. Если такой синтаксис появится, то разным людям от него разное потребуется.
User avatar
John Doe
Бюрократ
Posts: 13860
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Еще раз про меню Пуск

Post by John Doe »

Ваш случай не требует никаких изменений в плагине. Список легко получить командой dir
https://t.me/FarManager — Telegram чат
User avatar
Andrey Budko
Posts: 1203
Joined: Fri 01 Apr, 2005 14:03
Contact:

Re: Еще раз про меню Пуск

Post by Andrey Budko »

John Doe wrote:Ваш случай не требует никаких изменений в плагине. Список легко получить командой dir
Смотря как реализовывать. Если напрямую:
tmp:-safe <for /F %a IN ('dir /b C:\DOCUME~1\ENTRYW~1.WAD\5D29~1\4A66~1') do echo %USERPROFILE%\Главное меню\Программы\%a

то требует, ибо текущая тмп панель падает с переполнением стека, а версия многолетней давности работает нормально.
User avatar
John Doe
Бюрократ
Posts: 13860
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Еще раз про меню Пуск

Post by John Doe »

Будем терпеливо ждать когда придёт chupakabra и всё поправит
https://t.me/FarManager — Telegram чат
Maximus
Posts: 31
Joined: Thu 08 Oct, 2009 15:20

Re: Еще раз про меню Пуск

Post by Maximus »

Andrey Budko wrote:Смотря как реализовывать. Если напрямую:
tmp:-safe <for /F %a IN ('dir /b C:\DOCUME~1\ENTRYW~1.WAD\5D29~1\4A66~1') do echo %USERPROFILE%\Главное меню\Программы\%a
то требует, ибо текущая тмп панель падает с переполнением стека, а версия многолетней давности работает нормально.
Пора уже писать книгу "Программирование на Far" ))
Посмотрев ваш вариант, получил более или менее работающий через пользовательское меню

Code: Select all

dir "%USERPROFILE%\Главное меню\Программы" /B /S /A:D > "%TEMP%\pusk.txt" 
dir "%ALLUSERSPROFILE%\Главное меню\Программы" /B /S /A:D >> "%TEMP%\pusk.txt"
tmp:"%TEMP%\pusk.txt"
Но получилось "почти", потому что под задачу не нужно вложенное сканирование, но к сожалению только с ним dir выдает полные пути. Поэтому пришлось ограничиться сканированием вложенным, но только для папок. Из-за этого исключаются линки, которые расположены на самом верху. Возможно кто-то подскажет решение.
А еще можно ли через какую-то команду принудительно включить какой-нибудь Panel mode? Хочется medium (получается "как бы" папка) ,а по умолчанию включается wide.
Ну и еще вопросик, может кто знает, где официальные или просто _полные_ особенности батников описаны. Просто когда экспериментировал под XP сработала правильно только
такая конструкция внутри бат файла

(dir "%USERPROFILE%\Главное меню\Программы" /B) > "%TEMP%\pusk.txt"

Без скобок он заменяет > на параметр, а при ^> выдает на экран, а не в файл. На какой-то странице в одной секции было описано, что синтаксис ведет себя по разному не только по отношению к 95-й ветке виндов, но и внутри NT-шной. Неужели все так плохо?
User avatar
John Doe
Бюрократ
Posts: 13860
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Еще раз про меню Пуск

Post by John Doe »

Maximus wrote:Без скобок он заменяет > на параметр, а при ^> выдает на экран, а не в файл. На какой-то странице в одной секции было описано, что синтаксис ведет себя по разному не только по отношению к 95-й ветке виндов, но и внутри NT-шной. Неужели все так плохо?
Всё не так плохо. Это всего лишь баг фара.
Обойти легко - добавьте в начало командной строки %COMSPEC% /C
Ну а баг - на мантис.
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 10866
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Еще раз про меню Пуск

Post by HaRT »

John Doe wrote:Ну а баг - на мантис.
Ну или в этот дописать…
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13860
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Еще раз про меню Пуск

Post by John Doe »

HaRT wrote:Ну или в этот дописать…
Если про экранирование с помощью ^, то да (там косвенно затрагивается). А если про "Без скобок он заменяет > на параметр", то вроде как совсем не туда...

А вообще проверил я про > и не смог повторить, хотя утром вроде как повторялось (образовывался пустой файл pusk.txt)
https://t.me/FarManager — Telegram чат
User avatar
Andrey Budko
Posts: 1203
Joined: Fri 01 Apr, 2005 14:03
Contact:

Re: Еще раз про меню Пуск

Post by Andrey Budko »

John Doe wrote:Будем терпеливо ждать когда придёт chupakabra и всё поправит
Я не разбирался, но на первый взгляд это кажется полным бредом
1. Увеличен размер стека (а то tmppanel стала падать после замены MAX_PATH на NT_MAX_PATH)
Можно выделить память, можно объявить статиком, но не увеличивать же стек просто из-за того, что пути длинные.

А это что такое?

Code: Select all

TCHAR Dir[NT_MAX_PATH*5]
TCHAR TmpIn[NT_MAX_PATH*5],TmpOut[NT_MAX_PATH*5];
Почему *5? Почему на стеке?
Post Reply

Return to “Предложения и идеи”