Закрытие всех незапертых вкладок при запуске/закрытии TC

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

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

R1_
Сообщения: 7
Зарегистрирован: Пт апр 10, 2015 15:13

Закрытие всех незапертых вкладок при запуске/закрытии TC

Сообщение R1_ »

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

[mod="Avada"]Заголовок темы приведён в более адекватный для удобства последующего поиска вид. Топик-стартеру на будущее: проблема должна быть нормально раскрыта и в заголовке (насколько позволяет место), и в тексте темы, а не разделяться на части. [/mod]
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Способов много. Посмотри в сторону TCFS2 - этот монстр вообще способен творить всё на что фантазии хватит (ладно, почти всё), в том числе и при загрузке.
Twinkey тоже автоматически выполняет команды при загрузке.
Ну и я кое-что нарисовал. Подружи скрипт с вышеперечисленным. Правда, скрипт закрывает и запертые тоже (собственно, ради этого и писался), но допилить его - три минуты
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Вахмурка
В том-то и дело, что способов много, но все они касаются любых вкладок.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

У TCFS2Tools появилась проверка на запертость, т.ч. можно попробовать соорудить.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

R1_
А вдруг подойдёт?!
Если закреплённые вкладки меняются не часто, то можно сохранить секции [lefttabs] и [righttabs] файла wincmd.ini в отдельный файл (tabs.ini), открыв его только для чтения, а в wincmd.ini указать редирект:

Код: Выделить всё

[lefttabs]
RedirectSection=%COMMANDER_PATH%\TABS\tabs.ini 
[righttabs]
RedirectSection=%COMMANDER_PATH%\TABS\tabs.ini
R1_
Сообщения: 7
Зарегистрирован: Пт апр 10, 2015 15:13

Сообщение R1_ »

sa
То, что нужно! Благодарю :)
Flasher
Avada
Вахмурка
Спасибо за участие! Я решил выбрать самый простой вариант. Главное меня устраивает.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

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

А возвращаясь к тому, о котором я писал, то вот что выходит.
Берём последние бета-версии утилиты и модуля.
В секцию Items конфига TCFS2.ini добавляем
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 команду из кнопки:

Код: Выделить всё

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) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

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

Эта команда закрывает все неактивные вкладки на левой или правой панели (если в параметре 1, то на левой, если -1 - на правой):

Код: Выделить всё

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

Код: Выделить всё

tabClose=msg($433,3009,#1,1) delay(10) send(`{UP 3}{ENTER}`, 0)	; В #0 передаётся индекс вкладки (1 и выше - левая панель, -1 и ниже - правая)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Код: Выделить всё

/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()"
[s]Что-то не хочет..[/s] Теперь хочет.

[s]/ef run_item(allTabsClose(1)) ругается.[/s] (неграмотная запись)
Последний раз редактировалось Flasher Ср май 06, 2015 22:14, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

/ef run_item(allTabsClose(1)) ругается.
Так ведь нельзя! Надо как-то так (любое из двух):

Код: Выделить всё

/ei allTabsClose(1)

Код: Выделить всё

/ef run_item(allTabsClose,1)
Что-то не хочет..
Кстати, необязательно активировать вторую панель, команда открытия меню отлично работает для неактивной панели.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):Так ведь нельзя!
Точно, из головы вылетело.
Да, весьма шустро. Впечатляет. :)
Но, увы, одна незалоченная вкладка остаётся активной и незакрытой.
MVV писал(а):Кстати, необязательно активировать вторую панель, команда открытия меню отлично работает для неактивной панели.
Но тогда бы работала такая команда: /ei allTabsClose(1) allTabsClose(-1). Но она не работает.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

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

Или, что проще, активировать последние вкладки на обеих панелях, а затем вызвать allTabsClose(1) allTabsClose(-1). Из незаблокированных смогут выжить только самые правые вкладки (но тотал всё равно будет добавлять новые вкладки там, так что, думаю, одной незакрытой вкладкой в конце можно пренебречь). Активировать первые вкладки после закрытия несложно.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

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

И нельзя ли как-то победить смещение мышиного курсора?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

А номера у них какие? Ты же нигде не обнародовал.
Да ладно! И в TCFS2.ini ты искать, похоже, не пробовал?
И нельзя ли как-то победить смещение мышиного курсора?
А какая команда смещает курсор?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):Да ладно! И в TCFS2.ini ты искать, похоже, не пробовал?
А вот и неладно. Их там нет. Смотрел сразу и там и там.
MVV писал(а):А какая команда смещает курсор?
Да хотя бы /ei allTabsClose(1).
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить