Страница 3 из 9

Добавлено: Пн ноя 01, 2010 21:58
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

Добавлено: Ср ноя 03, 2010 14:29
HEXFIX
Можно ли сделать так, чтобы скрипт работал в архивах?
В настоящий момент если я нахожусь, например, в архиве и нажимаю кнопочку - вылетает окошко "Эта функция в архивах не работает"

Добавлено: Ср ноя 03, 2010 14:57
MVV
Попробуй всунуть куда угодно в строке параметров кнопки параметр %Z. Но все равно работать не будет, если тотал не запоминает в истории пути внутри архивов.

Добавлено: Ср ноя 03, 2010 15:15
HEXFIX
MVV
Спасибо. Вроде работает :)

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

Добавлено: Ср ноя 03, 2010 19:18
sa
Flasher писал(а):Скрипт следует всё-таки использовать в обычных папках.
А в обычных папках, что должен делать скрипт?
Отодвинуть сепаратор в сторону активной панели - это уменьшить её что ли, или, наоборот, увеличить, или какой-то другой замысел?

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

Добавлено: Ср ноя 03, 2010 19:36
sa
Flasher писал(а):С учётом заданных процентов - уменьшить
Так вот у меня, то уменьшает, то увеличивает. Закономерность не уловил пока. Причём, панели самые обычные, даже не архивы.

Добавлено: Ср ноя 03, 2010 19:37
Flasher
sa
Поочерёдно должно уменьшать и устанавливать сепаратор в середину, это сделано для удобства.

Добавлено: Ср ноя 03, 2010 19:44
sa
Проблема в том, что скрипт запускаю, когда сепаратор в середине, а результат разный.

Добавлено: Ср ноя 03, 2010 19:46
Flasher
А при этом курсор всё время, надо полагать, установлен в одной панели? Параметры правильно прописаны? Путь запуска очищен?

Добавлено: Ср ноя 03, 2010 20:03
sa
Да вроде всё правильно. Попробовал назначить вместо кнопки на сочетание клавиш - не помогло. Буду разбираться.

Добавлено: Ср ноя 03, 2010 20:16
Flasher
Я не уверен, что это играет роль: Настройка>Основные операции>Сохранять при выходе >Историю каталогов - галка стоит?

Добавлено: Ср ноя 03, 2010 20:27
sa
Flasher писал(а):галка стоит?
Да.
Коли проблема наблюдается только у меня, то не стоит заморачиваться. Главное, что замысел стал понятен.

Добавлено: Ср ноя 03, 2010 20:33
Flasher
Попробуй поиграться с TCS.Pause=n перед и после Key = TCS.INIRead...