TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое

Обсуждение только плагинов и утилит для Total Commander.

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

Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Если я сперва распахиваю, а потом скрываю заголовок, то панель задач пропадет после первого же восстановления программы из трея - система. И происходит это только при наличии флага развернутости окна - система видит, что окно без заголовка пытается развернуться, думает, что оно полноэкранное, и скрывает панель задач - примерно так.

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

Сообщение Flasher »

MVV писал(а):то панель задач пропадет после первого же восстановления программы из трея - система.
Заметь, я про восстановление из трея ничего не спрашивал. Про проблемы с развёрнутостью окна и областью уведомлений я тебе рассказал, кстати.
Аватара пользователя
anephew
Сообщения: 35
Зарегистрирован: Сб мар 04, 2006 10:18

Сообщение anephew »

Autorun_HideMenu где можно скачать?
подписываюсь под своими словами
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Сейчас это называется TCFS2Tools. См. в шапке.
HA3APET
Сообщения: 151
Зарегистрирован: Пн фев 22, 2010 05:43

Сообщение HA3APET »

Спасибо за отличную программу, наконец то решил изучить её возможности, понял и разобрался, что программа отлично заменяет (как минимум для моих нужд) TCFS, TCMC и даже TCWSHelp.

Но многое я так и не понимаю, например
цитата из Readme

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

Пример запуска команды fs2 с отключением записи действия Undo (команда работает со своим действием отката):
TCFS2 /u- /ei fs2
Сделал, получил

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

---------------------------
TCFS2
---------------------------
Error:
Unavailable key

Items:
fs2
---------------------------
ОК   
---------------------------
Что я упустил?

Вот ещё один момент который я не понял, цитата

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

t0=move(, , , , 0), test(isTopmost), t1				; Выключить режим поверх всех окон
t1=move(, , , , 1), test(!isTopmost), t0			; Включить режим поверх всех окон
t2=move(, , , , isTopmost ? 0 : 1), , t2			; Переключить режим поверх всех окон
Делаю кнопку
TCFS2.exe /ea "move(, , , , 1)" - работает
TCFS2.exe /ea "move(, , , , 0)" - работает
как по аналогии будет выглядеть третья команда? Делаю
TCFS2.exe /ea "move(, , , , isTopmost ? 0 : 1), " - не работает
Начинаю подозревать, что у меня проблемы с логикой))

На данный момент сделал кнопку
TCFS2.exe /ef "set_style(# ^ $00C00000)" tcm(2910) tcm(2902) tcm(2901) tcm(2909) tcm(2911) tcm(2908)
Отлично работает, но хочется сюда добавить переключаемый режим поверх всех окон и переключаемый режим Развернуть\Свернуть в окно. Помогите пожалуйста.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

HA3APET писал(а):Сделал, получил

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

---------------------------
TCFS2
---------------------------
Error:
Unavailable key

Items:
fs2
---------------------------
ОК   
---------------------------
Что я упустил?
Убедись, что в твоей секции [Items] есть параметр fs2. По идее, в стандартном файле конфигурации он есть. Кстати, ты положил файл TCFS2.ini из папки RU рядом с программой? Там прописана куча стандартных действий, включая fs2.
HA3APET писал(а):Вот ещё один момент который я не понял, цитата

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

t0=move(, , , , 0), test(isTopmost), t1				; Выключить режим поверх всех окон
t1=move(, , , , 1), test(!isTopmost), t0			; Включить режим поверх всех окон
t2=move(, , , , isTopmost ? 0 : 1), , t2			; Переключить режим поверх всех окон
Делаю кнопку
TCFS2.exe /ea "move(, , , , 1)" - работает
TCFS2.exe /ea "move(, , , , 0)" - работает
как по аналогии будет выглядеть третья команда? Делаю
TCFS2.exe /ea "move(, , , , isTopmost ? 0 : 1), " - не работает
Начинаю подозревать, что у меня проблемы с логикой))
По идее, третья команда может содержать параметр /ea "move(, , , , isTopmost ? 0 : 1)" - это должно работать. Но опять же, судя по вышеописанному, ты не положил файл TCFS2.ini рядом с программой - если этого не сделать, естественно TCFS2 не будет знать, что такое isTopmost, т.к. этот макрос прописан в конфиге.
HA3APET писал(а):На данный момент сделал кнопку
TCFS2.exe /ef "set_style(# ^ $00C00000)" tcm(2910) tcm(2902) tcm(2901) tcm(2909) tcm(2911) tcm(2908)
Отлично работает, но хочется сюда добавить переключаемый режим поверх всех окон и переключаемый режим Развернуть\Свернуть в окно. Помогите пожалуйста.
Для всех твоих команд в TCFS2.ini прописаны команды включения и выключения (например, cl0 и cl1 первая выключает, а вторая включает командную строку). Лучше использовать их, т.к. тогда все элементы будут включаться/выключаться одновременно, а не просто переключаться, как в твоей команде.

В общем, положи файл TCFS2.ini из папки RU в папку программы, и у тебя должны заработать все прописанные там команды. Тогда твоя команда будет выглядеть так:

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

TCFS2.exe /ef "run_item(c0) run_item(cl0) run_item(db0) run_item(tb0) run_item(sb0) run_item(kb0) run_item(th0), test(hasCaption) | run_item(c1) run_item(cl1) run_item(db1) run_item(tb1) run_item(sb1) run_item(kb1) run_item(th1)"
А если ты пропишешь в секцию [Actions] два действия:

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

fs3_0=c0 cl0 db0 tb0 sb0 kb0 th0
fs3_1=c1 cl1 db1 tb1 sb1 kb1 th1
То будет работать и такая:

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

TCFS2.exe /ef "run_action(fs3_0), test(hasCaption) | run_action(fs3_1)"
Т.е., будет выключать все упомянутые элементы, если заголовок окна есть, и наоборот включать их все, если заголовок окна выключен. Если часть элементов будет включена, а часть - выключена, это все равно будет работать правильно.

Ах да, насчет развернутости и режима "поверх всех окон": допиши в fs3_0 команды t1 и m1, а в fs3_1 - обратные команды t0 и m0. Тогда при отключении всех элементов будет включаться режим "поверх всех окон" и разворачиваться окно, а при выключении - обратно.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

HA3APET писал(а):программа отлично заменяет (как минимум для моих нужд) TCMC и даже TCWSHelp
Для моих, увы, нет. TCFS2 не умеет в отличии от TCMC перемещаться по каталогам, ну и с Хелпером я бы тоже не стал проводить параллель, всё-таки он умеет и лочить вид панели, и даёт ходить по папкам, использовать буфер, ждать завершения команды, возвращать тек. фильтр, устанавливать дату, атрибуты, засыпать на нужное время, более гибко работать с секциями, читать массив имён выделенного и т.д.
HA3APET писал(а):Что я упустил?
Насколько я понимаю, fs2 как раз сохраняет/запускает undo, поэтому очистка для неё неуместна.
HA3APET писал(а):TCFS2.exe /ea "move(, , , , 1)" - работает
Странно, ведь move - это функция, для функций используется команда /ef.
HA3APET писал(а):TCFS2.exe /ea "move(, , , , isTopmost ? 0 : 1), " - не работает
Если уже есть команды, то зачем их целиком прописывать в строке запуска? Тут просто: TCFS2.exe /ei t2
HA3APET писал(а):На данный момент сделал кнопку
TCFS2.exe /ef "set_style(# ^ $00C00000)" tcm(2910) tcm(2902) tcm(2901) tcm(2909) tcm(2911) tcm(2908)
Отлично работает, но хочется сюда добавить переключаемый режим поверх всех окон и переключаемый режим Развернуть\Свернуть в окно. Помогите пожалуйста.
А смысл такой кнопки? Не лучше сделать сразу кнопку переключения в FullScreen и обратно? Я пользуюсь командой, где undo вообще не используется, а используются функции run_action и test, чтобы срабатывало всегда безглючно.
А, ну вон MVV как раз похожий пример привёл. Хотя, чтобы команда срабатывала в разных ситуациях, я предпочитаю тестировать не только по строке заголовка:

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

..., test(hasDriveBar && hasTabHeader && hasPathHeader && hasStatusBar && hasButtonBar) |...
MVV писал(а):

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

fs3_0=c0 cl0 db0 tb0 sb0 kb0 th0
fs3_1=c1 cl1 db1 tb1 sb1 kb1 th1
Здесь ещё не хватает cd0/cd1, th0/th1 и mm0/mm1. У меня вдобавок rm1pm у каждого действия на конце стоит. Действия называются show/hide для ясности.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Flasher писал(а):
MVV писал(а):

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

fs3_0=c0 cl0 db0 tb0 sb0 kb0 th0
fs3_1=c1 cl1 db1 tb1 sb1 kb1 th1
Здесь ещё не хватает cd0/cd1, th0/th1 и mm0/mm1. У меня вдобавок rm1pm у каждого действия на конце стоит. Действия называются show/hide для ясности.
Эм? th0 и th1 там есть, в конце. :) А остальное не запрашивалось, я указал лишь команды, соответствующие индексам команд тотала, которые HA3APET упоминал в своей кнопке.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):А остальное не запрашивалос
Знаю, я для полноэкранности указал. Подозреваю, что это и требовалось.
HA3APET
Сообщения: 151
Зарегистрирован: Пн фев 22, 2010 05:43

Сообщение HA3APET »

Я не положил TCFS2.ini рядом с программой. Теперь всё заработало я в восторге. Спасибо за разъяснение.

Изучаю программу дальше.
Сейчас у меня:

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

[Actions]
fs3_0=c0 cl0 db0 tb0 sb0 kb0 th0 t1 m1 
fs3_1=c1 cl1 db1 tb1 sb1 kb1 th1 t0 m0
и
/ef "run_action(fs3_0), test(hasCaption) | run_action(fs3_1)"

Как сделать, чтобы при нажатии не выключалась панель
инструментов если нету заголовка окна?
То есть сейчас я нажимаю на кнопку и всё как надо выключается, затем включаю панель инструментов и вновь нажимаю на кнопку, всё включается, а панель выключается.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Странно, у меня панель инструментов в такой ситуации не выключается. Да и не должна по идее - ведь команда tb1, которую запускает fs3_1, всегда включает панель, независимо от её состояния - она проверяет состояние панели в wincmd.ini.

Запускаю TCFS2 с указанными параметрами, получаю полноэкранный режим, включаю панель инструментов, запускаю TCFS2 снова с такими же параметрами - всё возвращается на место, панель остаётся.
HA3APET
Сообщения: 151
Зарегистрирован: Пн фев 22, 2010 05:43

Сообщение HA3APET »

MVV
Наверное вы меня не до поняли.
Вот видео для наглядности, так будет проще.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Да нет, я как раз понял правильно - запускаю команду, включаю панель, запускаю команду ещё раз. Но у меня панель инструментов не скрывается, когда тотал возвращается из полноэкранного режима.

Чистый тотал тоже так себя ведет?
Перенаправление в wincmd.ini используется?
Если при включенной панели просто выполнить TCFS2 /ei tb1, панель скроется?
HA3APET
Сообщения: 151
Зарегистрирован: Пн фев 22, 2010 05:43

Сообщение HA3APET »

Да, по TCFS2 /ei tb1 панель так же скрывается.
RedirectSection есть в wincmd.ini
На чистом TCFS2 /ei tb1 панель не скрывается.
То есть RedirectSection мешается? Если да, то найти какой не сложно. Или все убрать?

А нет, в чистом ТС, тоже самое, новое видео по ссылке, что выше,
там видно как одна и та же кнопка ведёт себя по разному.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Вообще, я вроде делал распознавание редирекции. Раз скрывается, значит, не срабатывает - значит, имеем баг. :)

Если RedirectSection и мешает, то только один - который прописан в секции [Layout] - параметр проверяется именно в этой секции. А прописан файл может быть или в этом параметре, или в параметре AlternateUserIni секции [Configuration], если в [Layout] прописано RedirectSection=1.

Думаю, путь к INI-файлу для редирекции указан неполный (только имя), поэтому TCFS2 не находит файл. Но все равно странно, что панель скрывается - если в INI не найдено параметра, его значение считается равным 1. Вот обратная ситуация возможна, если файл не найден - программа тогда думает, что панель включена, и может включить её командой tb0.

Не вижу новой ссылки на видео, вижу только старую. Но в чистом TC редирекции быть не может, следовательно, всё должно работать.
Ответить