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 

Закрытие всех незапертых вкладок при запуске/закрытии TC
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
R1_



Joined: 10 Apr 2015
Posts: 7

Post (Separately) Posted: Tue May 05, 2015 10:48    Post subject: Закрытие всех незапертых вкладок при запуске/закрытии TC Reply with quote

Кроме закрепленных. Возможно такое? Спасибо.

 !  Avada:
Заголовок темы приведён в более адекватный для удобства последующего поиска вид. Топик-стартеру на будущее: проблема должна быть нормально раскрыта и в заголовке (насколько позволяет место), и в тексте темы, а не разделяться на части.
Back to top
View user's profile Send private message
Вахмурка



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

Post (Separately) Posted: Tue May 05, 2015 12:05    Post subject: Reply with quote

Способов много. Посмотри в сторону TCFS2 - этот монстр вообще способен творить всё на что фантазии хватит (ладно, почти всё), в том числе и при загрузке.
Twinkey тоже автоматически выполняет команды при загрузке.
Ну и я кое-что нарисовал. Подружи скрипт с вышеперечисленным. Правда, скрипт закрывает и запертые тоже (собственно, ради этого и писался), но допилить его - три минуты
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10315
Location: Россия, Саратов

Post (Separately) Posted: Tue May 05, 2015 12:27    Post subject: Reply with quote

Вахмурка
В том-то и дело, что способов много, но все они касаются любых вкладок.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue May 05, 2015 12:29    Post subject: Reply with quote

У TCFS2Tools появилась проверка на запертость, т.ч. можно попробовать соорудить.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2624

Post (Separately) Posted: Tue May 05, 2015 16:15    Post subject: Reply with quote

R1_
А вдруг подойдёт?!
Если закреплённые вкладки меняются не часто, то можно сохранить секции [lefttabs] и [righttabs] файла wincmd.ini в отдельный файл (tabs.ini), открыв его только для чтения, а в wincmd.ini указать редирект:
Code:
[lefttabs]
RedirectSection=%COMMANDER_PATH%\TABS\tabs.ini
[righttabs]
RedirectSection=%COMMANDER_PATH%\TABS\tabs.ini
Back to top
View user's profile Send private message
R1_



Joined: 10 Apr 2015
Posts: 7

Post (Separately) Posted: Tue May 05, 2015 22:58    Post subject: Reply with quote

sa
То, что нужно! Благодарю Smile
Flasher
Avada
Вахмурка
Спасибо за участие! Я решил выбрать самый простой вариант. Главное меня устраивает.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed May 06, 2015 00:53    Post subject: Reply with quote

Вариант действительно оптимальный.

А возвращаясь к тому, о котором я писал, то вот что выходит.
Берём последние бета-версии утилиты и модуля.
В секцию Items конфига TCFS2.ini добавляем
Quote:
lclose=loop(@<tcm(65582)+if(test(tcm(65586)),tcm(3005),tcm(3007))) ; Закрыть откреплённые вкладки слева
rclose=loop(@<tcm(65583)+if(test(tcm(65587)),tcm(3005),tcm(3007))) ; Закрыть откреплённые вкладки справа
Потом уже на выбор (запуск/завершение) пишем в autorun.cfg команду из кнопки:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "msg($0B,0) if(eval(tcm(65551)), run_item(lclose)+tcm(4002)+run_item(rclose)+tcm(4001), run_item(rclose)+tcm(4001)+run_item(lclose)+tcm(4002)) msg($0B,1) redraw()"
wcmicons.dll,85
Закрыть все откреплённые вкладки

Пока ещё не всегда всё стабильно закрывает, надо будет обдумать, где не успевает.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Wed May 06, 2015 22:02    Post subject: Reply with quote

С 474 сборкой TCFS2 можно закрывать вкладки с помощью меню вкладки, не активируя их (прирост скорости +100500 для тормознутых путей).

Эта команда закрывает все неактивные вкладки на левой или правой панели (если в параметре 1, то на левой, если -1 - на правой):
Code:
allTabsClose=msg($433,3009,#1,1) delay(10) send(`{UP 2}{ENTER}`, 0) delay(10) send(`{ENTER}`, 0)   ; В #1 передаётся индекс вкладки, для которой запрашивать меню: 1 - первая на левой панели, -1 - первая на правой панели

Останется лишь проверить, заблокирована ли активная вкладка, и закрыть её. Эта команда закрывает вкладку с указанным индексом:
Code:
tabClose=msg($433,3009,#1,1) delay(10) send(`{UP 3}{ENTER}`, 0)   ; В #0 передаётся индекс вкладки (1 и выше - левая панель, -1 и ниже - правая)

_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed May 06, 2015 22:19    Post subject: Reply with quote

Code:
/ef "msg($0B,0) if(eval(tcm(65551)), run_item(allTabsClose,1)+tcm(4002)+run_item(allTabsClose,-1)+tcm(4001), run_item(allTabsClose,-1))+tcm(4001)+run_item(allTabsClose,1)+tcm(4002)) msg($0B,1) redraw()"
Что-то не хочет.. Теперь хочет.

/ef run_item(allTabsClose(1)) ругается. (неграмотная запись)
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Wed May 06, 2015 23:14; edited 1 time in total
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Wed May 06, 2015 23:02    Post subject: Reply with quote

Quote:
/ef run_item(allTabsClose(1)) ругается.

Так ведь нельзя! Надо как-то так (любое из двух):
Code:
/ei allTabsClose(1)

Code:
/ef run_item(allTabsClose,1)


Quote:
Что-то не хочет..

Кстати, необязательно активировать вторую панель, команда открытия меню отлично работает для неактивной панели.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed May 06, 2015 23:12    Post subject: Reply with quote

MVV wrote:
Так ведь нельзя!
Точно, из головы вылетело.
Да, весьма шустро. Впечатляет. Smile
Но, увы, одна незалоченная вкладка остаётся активной и незакрытой.

MVV wrote:
Кстати, необязательно активировать вторую панель, команда открытия меню отлично работает для неактивной панели.
Но тогда бы работала такая команда: /ei allTabsClose(1) allTabsClose(-1). Но она не работает.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Wed May 06, 2015 23:18    Post subject: Reply with quote

Quote:
Но тогда бы работала такая команда: /ei allTabsClose(1) allTabsClose(-1). Но она не работает.

А почему у меня работает?

Quote:
Но, увы, одна незалоченная вкладка остаётся активной и незакрытой.

Я говорил, что останется проверить, заблокирована ли текущая вкладка, и закрыть её. Можно тупо активировать следующую вкладку и повторить allTabsClose (ведь теперь активированной гарантированно окажется заблокированная). Опять же, переключать панели не требуется, активировать вкладки можно с помощью tt_LeftTabSetIndex/tt_RightTabSetIndex, а узнавать текущие индексы с помощью tt_LeftTabGetIndex/tt_RightTabGetIndex.

Или, что проще, активировать последние вкладки на обеих панелях, а затем вызвать allTabsClose(1) allTabsClose(-1). Из незаблокированных смогут выжить только самые правые вкладки (но тотал всё равно будет добавлять новые вкладки там, так что, думаю, одной незакрытой вкладкой в конце можно пренебречь). Активировать первые вкладки после закрытия несложно.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed May 06, 2015 23:33    Post subject: Reply with quote

MVV wrote:
А почему у меня работает?
Не знаю, у меня только в активной закрытия происходят.
MVV wrote:
а узнавать текущие индексы с помощью tt_LeftTabGetIndex/tt_RightTabGetIndex
А номера у них какие? Ты же нигде не обнародовал.

И нельзя ли как-то победить смещение мышиного курсора?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Thu May 07, 2015 00:37    Post subject: Reply with quote

Quote:
А номера у них какие? Ты же нигде не обнародовал.

Да ладно! И в TCFS2.ini ты искать, похоже, не пробовал?

Quote:
И нельзя ли как-то победить смещение мышиного курсора?

А какая команда смещает курсор?
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu May 07, 2015 01:04    Post subject: Reply with quote

MVV wrote:
Да ладно! И в TCFS2.ini ты искать, похоже, не пробовал?
А вот и неладно. Их там нет. Смотрел сразу и там и там.
MVV wrote:
А какая команда смещает курсор?
Да хотя бы /ei allTabsClose(1).
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
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