Можно ли повесить сдвиг панелей (20/80 и 80/20) на кнопку(и)

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

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

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

Сообщение Flasher »

Давно думал, а зачем, собственно, смещать сепаратор в ненужную сторону? И решил написать маленький скриптик, решающий отчасти эту проблему. Учтите, что при совпадении путей обеих файловых панелей ничего не произойдёт.

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

' Отодвинуть сепаратор в сторону активной панели
' Параметры: "%P" "%T" %Z
' Необходима регистрация "Script helper ActiveX for TC"
' Автор - Flasher (c)
'===================================
Set TCS = CreateObject("TCScript.Helper")
TCS.SendCommand "cm_ConfigSaveDirHistory"
K = TCS.INIRead(TCS.MainINI,  "LeftHistory",  "0",  "0")
'Если секция историй вынесена у вас в отдельный ini, то
'вместо TCS.MainINI пропишите полный путь к нему в кавычках
LP = WScript.Arguments(0)
TCS.INIWrite TCS.MainINI,  "LeftHistory",  "0",  LP
K1 = TCS.INIRead(TCS.MainINI,  "LeftHistory",  "0",  "0")
Set SA = CreateObject("Shell.Application")
If TCS.Separator<>50 Or LP=WScript.Arguments(1) Then
   TCS.SendCommand "cm_50Percent"
Else
 If K1=Replace(K, "/", "\") Or K=K1 & "/" Or _ 
    K=Left(LP, Len(LP) - 1) Or K="::|" & K1 Or _
    K=SA.NameSpace(&Ha).Self.Path & "|" & LP Or _
    K=SA.NameSpace(&H3).Self.Path & "|" & LP Or _
    K=SA.NameSpace(&H4).Self.Path & "|" & LP Or _
    K=SA.NameSpace(&H11).Self.Path & "|" & LP Or _
    K=SA.NameSpace(&H12).Self.Path & "|" & LP Then
     TCS.Separator=15
  Else
     TCS.Separator=85
 End If
End If
Set TCS = Nothing
WScript.Quit
Если кому-то понадобится сразу включать быстрый просмотр с перемещением сепаратора в нужную сторону, то добавьте строку

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

 TCS.SendCommand "cm_SrcHideQuickview"
перед

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

 TCS.SendCommand "cm_50Percent"
и

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

TCS.SendCommand "cm_SrcQuickview"
перед каждой из этих:

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

   TCS.Separator=15

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

   TCS.Separator=85
Последний раз редактировалось Flasher Пн ноя 08, 2010 09:45, всего редактировалось 3 раза.
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

Можно ли сделать так, чтобы скрипт работал в архивах?
В настоящий момент если я нахожусь, например, в архиве и нажимаю кнопочку - вылетает окошко "Эта функция в архивах не работает"
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Попробуй всунуть куда угодно в строке параметров кнопки параметр %Z. Но все равно работать не будет, если тотал не запоминает в истории пути внутри архивов.
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

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

Сообщение Flasher »

MVV писал(а):Попробуй всунуть куда угодно в строке параметров кнопки параметр %Z.
Вот куда угодно не надо. Только после первых двух параметров, иначе глюк.
Добавил параметр в коммент скрипта.
HEXFIX писал(а):Спасибо. Вроде работает
Работать как надо, к сожалению, с архивами и виртуальными панелями(Панель управления, раб. стол(cm_OpenDesktop), сист. плагины) это не будет, если они открыты в левой панели, по описанной MVV причине, сдвиг будет производится всегда в одну сторону. Исправить это на данный момент никак не получится, потому что функционал ТС этого не позволяет.
Скрипт следует всё-таки использовать в обычных папках.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

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

Сообщение Flasher »

sa писал(а):Отодвинуть сепаратор в сторону активной панели - это уменьшить её что ли, или, наоборот, увеличить, или какой-то другой замысел?
С учётом заданных процентов - уменьшить, а если эти числа(проценты) поменять местами, то увеличить. Замысел в том, чтобы, например, в режиме быстрого просмотра можно по нажатию одной кнопки или горячей клавиши просматривать файл под курсором в смотрибельном(не урезанном) виде. Если это потребуется для просмотра колонок, то числа следует поменять местами.
Я сейчас пытаюсь поправить скрипт, чтобы и в архивах работало, способ нащупал, но есть проблемные участки, буду думать.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

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

Сообщение Flasher »

sa
Поочерёдно должно уменьшать и устанавливать сепаратор в середину, это сделано для удобства.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

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

Сообщение Flasher »

А при этом курсор всё время, надо полагать, установлен в одной панели? Параметры правильно прописаны? Путь запуска очищен?
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

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

Сообщение Flasher »

Я не уверен, что это играет роль: Настройка>Основные операции>Сохранять при выходе >Историю каталогов - галка стоит?
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

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

Сообщение Flasher »

Попробуй поиграться с TCS.Pause=n перед и после Key = TCS.INIRead...
Ответить