Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[Script] Перенос меню в "Избранные каталоги"

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
BasiL



Joined: 24 Nov 2006
Posts: 11

Post (Separately) Posted: Thu Oct 15, 2009 12:30    Post subject: [Script] Перенос меню в "Избранные каталоги" Reply with quote

На нетбуках разрешение по вертикали всего 600 точек, по этому имеет смысл максимально минимизировать интерфейс ТС. панель инструментов можно скрывать по хоткею, так же можно поступить и с другими панельками.
Однако, скрыть\показать меню нельзя, можно только его отключить целиком, выбрав пустой *.mnu файл и установив RestrictInterface=1.
Но меню бывает нужно, по этому возникла идея перенести все меню в "избранные каталоги". Т.к. часто бывает, что меню так же настроено "под себя", я сделал скрипт, который может конвертировать mnu файл в формат секции [DirMenu] wincmd.ini
Code:
@echo off
setlocal ENABLEDELAYEDEXPANSION
echo from which menu item we will start?
set /p p=

echo which menufile to convert?
set /p menufile=

echo output filename (text will be added to eof)
set /p file=

rem add first separator
echo menu!p!=->>%file%.tmp

rem add a "Menu" title
set /a p=p+1
echo menu!p!=-Menu>>%file%.tmp
set /a p=p+1

for /f "tokens=*" %%a in ('findstr /c:"MENUITEM" /c:"POPUP" %menufile%') do (
 if "%%a"=="MENUITEM SEPARATOR" (
             echo menu!p!=->>%file%.tmp
             set /a p=p+1
             ) else (
                  if "%%a"=="END_POPUP" (
                  echo menu!p!=-->>%file%.tmp
                  set /a p=p+1
                  ) else (
                      set "name=%%a"
                      set name=!name:"=@!
                      for /f "tokens=1,2,3,4 delims=@" %%A in ("!name!") do (
                         if "%%A"=="POPUP " (
                            echo menu!p!=-%%B>>%file%.tmp   
                            set /a p=p+1
                            ) else (
                               echo menu!p!="%%B">>%file%.tmp
                               set "value=%%C"
                               echo cmd!p!=!value:~2!>>%file%.tmp
                               set /a p=p+1)
                               )
                            )
             )
)
rem close "Menu"
echo menu!p!=-->>%file%.tmp
rem removing \t
for /f "tokens=*" %%A in (%file%.tmp) do (
   set "str=%%A"
   set str=!str:^\t= !
echo !str!>>%file%.txt   
)
del /q %file%.tmp

сохранить в текстовый файл с расширением .cmd (или .bat)

надо ввести номер пункта, котрым заканчивается ваше меню избранных каталогов, можно посмотреть последний номер в секции [DirMenu]
Затем - указать полный путь к вашему mnu файлу
И последнее - указать имя файла, в который запишется результат.
к имени добавится расширение .txt
Так же скрипт использует временный файл с расширением .tmp, который в конце работы удаляется, по этому желательно выбирать имя файла, которого нет в каталоге со скриптом.

Полученный текст надо вставить в секцию [DirMenu] вашего wincmd.ini (если эта секция не перенесена в другой файл, как это сделано у меня).
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Thu Oct 15, 2009 13:02    Post subject: Reply with quote

BasiL wrote:
Однако, скрыть\показать меню нельзя

Можно. Когда у меня был маленький моник, написал программку, которая вполне справлялась с задачей динамического включения-отключения разных частей интерфейса TC, меню в том числе.
Хотя будет ли работать с 7.50 - воспрос открытый. В любом случае, каким-нибудь PowerPro эта задача также решается довольно просто.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
BasiL



Joined: 24 Nov 2006
Posts: 11

Post (Separately) Posted: Thu Oct 15, 2009 13:52    Post subject: Reply with quote

D1P
Quote:
Хотя будет ли работать с 7.50 - воспрос открытый

Работает, спасибо!
Однако, временный файл не всегда удаляется, и пару раз вылетала с ошибкой.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Thu Oct 15, 2009 15:47    Post subject: Reply with quote

http://powerpro.wincmd.ru/Scripts/ShowHide.htm
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Fri Oct 16, 2009 00:27    Post subject: Reply with quote

Вахмурка wrote:
http://powerpro.wincmd.ru/Scripts/ShowHide.htm

Что-то не видать там ничё про переключение видимости меню Wink
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Fri Oct 16, 2009 00:59    Post subject: Reply with quote

Зато видать экономию места
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group