Страница 1 из 2
Активная панель на все окно
Добавлено: Ср янв 02, 2008 13:07
UserTC
есть ли комбинация клавиш: Активная панель на всю ширину окна выкл/вкл, как было в NC ? примерно как команда "cm_50Percent" только не 50 процентов, а 100.
Добавлено: Ср янв 02, 2008 14:29
DrShark
Это есть в to-do списке автора Total Commander для следующей версии TC:
http://ghisler.ch/board/viewtopic.php?p=134367#134367
Добавлено: Ср янв 02, 2008 17:05
Volniy
когда-то вполне нормально работало
вот это. Это не совсем точно то, но очччень близко.
Добавлено: Ср янв 02, 2008 21:52
UserTC
Спасибо, сделал через VBS - в принципе меня устраивает, тока выполняется немного с небольшой задержкой не так плавно как со стандартными командами.
Добавлено: Вс янв 06, 2008 13:50
UserTC
еще назрел вопрос, можно сделать так что бы позиция окна при выходи сохранялась автоматом без указания в меню сверху конфигурации - "запомнить позицию"?. В настройках можно поставить что бы сохранял историю настроек, но позиции окна я там не увидел.
Добавлено: Вс янв 06, 2008 15:02
DrShark
C помощью того же скрипта можно изменять параметр wincmd.ini
Divider, но для этого, как я понял, нужно получить разрешение экрана, т.к. этот параметр находится в секции вида
Справка писал(а):[1024x768 (10x20)] - Данные, зависящие от разрешения экрана и размера шрифта (размер шрифта определяется числами в скобках: (8x16) — для нормального и уменьшенного шрифта, (10x20) — для крупного шрифта).
Насколько это реально, лучше знает автор скрипта.
Добавлено: Вс янв 06, 2008 23:16
Volniy
В принципе это все возможно, но весьма геморно. Для этого придется задействовать WMI, что не всегда приемлемо. Есть два (как минимум, и не считая реквеста к Гислеру) обходных решения:
1) Не определять программно имя текущей секцию с параметром Divider, а определив его "вручную" одиножды, задать его в скрипте жестко.
2) Отключить вообще систему разделения настроек внешнего вида по выбранному шрифту и разрешению экрана. Для этого достаточно добавления параметра ResolutionSpecific=0 в секцию [Configuration]. После этого настройки для всех разрешений и размеров шрифтов будут храниться в одной общей секции [AllResolutions] (для удобства просто переименуйте активную секцию, используя именно это имя).
Какой вариант более приемлемый?
Добавлено: Вс янв 06, 2008 23:46
DrShark
2Volniy
Насколько я знаю, твой Хелпер умеет команды Тоталу посылать.
Так вот, положение разделителя сохраняется при использовании
cm_ConfigSavePos.
Можно закинуть соотв. функцию куда-то в конец скрипта.
Добавлено: Пн янв 07, 2008 00:22
Volniy
Ну да, а я и забыл

Тут, правда, есть один нюанс. Сохранение позиции это не совсем то, что нужно, потому как оно сохраняет не только положение сепаратора, а еще и размеры окна, его состояние и пр. Это немного некорректно, хотя может кому-то вполне подойдет.
Ладно, выдаю тогда сразу два варианта (закоментируйте ненужный и наоборот):
Код: Выделить всё
'=========================[ Start of file ]===================
' File: Separators+.vbs
' Description: Производит переключение между 3-мя любыми позициями
' разделителя панелей ТС. Позиция сохраняется (!!!)
' Installation: Создайте новую команду в меню Запуск TC
' Команда: "диск:\путь\к\файлу\Separators+.vbs"
' Назначьте на нее горячую клавишу
' Copyright: (c) 2008, Volniy
Option Explicit
Dim TCS
Const Pos1=95, Pos2=5, Pos3=50
Set TCS = CreateObject("TCScript.Helper")
TCS.Pause = 10
TCS.LockTC True
If TCS.Separator < 0 Or TCS.Separator > 100 Then
TCS.SendCommand "cm_50Percent", True
End If
Select Case CInt(TCS.Separator)
Case (Pos2 - 1), Pos2, (Pos2 + 1)
TCS.Separator = Pos3
Case (Pos3 - 1), Pos3, (Pos3 + 1)
TCS.Separator = Pos1
Case (Pos1 - 1), Pos1, (Pos1 + 1)
TCS.Separator = Pos2
Case Else
TCS.Separator = Pos3
End Select
TCS.LockTC False
'1 способ, чистый ибо только сохраняет позицию сепаратора
'TCS.MainINI="c:\TC\wincmd.ini" - это если путь автоматом не определяется
If TCS.INIRead(TCS.MainINI,"Configuration","ResolutionSpecific","1")="0" Then
Call TCS.INIWrite(TCS.MainINI,"AllResolutions","Divider",TCS.Separator*10)
Else
Call TCS.INIWrite(TCS.MainINI,GetSectionName,"Divider",TCS.Separator*10)
End If
'2 способ, сохраняет заодно и позицию окна
'при этом способе функция GetSectionName лишняя
'TCS.SendCommand 493 , -1
Set TCS = Nothing
Wscript.Quit()
Function GetSectionName
Dim objWMIService, colItems, objItem, Sec
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery(_
"Select * from Win32_DesktopMonitor")
For Each objItem in colItems
Sec=""
Sec= CStr(objItem.ScreenWidth) & "x" _
& CStr(objItem.ScreenHeight)
If objItem.PixelsPerXLogicalInch > 96 Then
Sec= Sec & " (10x20)"
Else
Sec= Sec & " (8x16)"
End If
Next
GetSectionName = Sec
End Function
'=========================[ End of file ]===================
Добавлено: Пн янв 07, 2008 00:43
DrShark
2Volniy
Кажется, твой скрипт не учитывает ResolutionSpecific=0 и название секции [AllResolutions]...
Добавлено: Пн янв 07, 2008 01:56
Volniy
DrShark писал(а):2Volniy
Кажется, твой скрипт не учитывает ResolutionSpecific=0 и название секции [AllResolutions]...
... а еще и температуру воздуха на пляжах Прибалтики
OK. Уже исправил.
Добавлено: Чт июл 23, 2009 01:42
prog_san
Почему-то после выполнения команды TCS.Separator=100 в задачах системы остается запись 100% - указывает на процесс Totalcmd.exe. И появляется и не исчезает всплывающее значение позиции разделителя. Для других значений такого поведения не наблюдается.
Код: Выделить всё
Dim TCS
Set TCS = CreateObject("TCScript.Helper")
TCS.LockTC True
TCS.Separator = 100
TCS.LockTC False
Set TCS = Nothing
Wscript.Quit()
TC 7.50 beta 7
Команды\кнопки управления разделителем файл-панелей в Тотале
Добавлено: Вс май 16, 2010 06:06
Den_Klimov
В Тотале имеется уж давненько встроенная команда "Установить границу файловых панелей по центру".
Но насколько помню никаких иных внутренних команд для управления разделителем файловых панелей НЕТ. Всё приходится делать мышей, да и то самым неудобным способом.
Тем не менее потребность в других командах для клавиатурников есть. И она весьма велика.
Хотя бы в таких двух:
- растянуть активную файловую панель на весь Тотал (полностью скрыв таким образом противоположную панель)
или
- растянуть активную файловую панель в сотношении 80\20
Естественно подразумевается возможность сделать это не перезагружая Тотал.
У кого-то есть какие-то идеи по этом поводу?
Реально ли вообще сделать пользовательские команды с двумя такими функциями (или хотя бы с первой) при помощи каких-то внешних костылей, не перекоцывая полностью Total?
Хотелось бы повесить на эти функции клавиатурные сочетания и заодно кнопки для мышатников, но встренных в Тотал таких команд насколько помню нет.
Добавлено: Вс май 16, 2010 10:55
Tol!k
Ищи по форуму текст TCS.Separator
Добавлено: Вс май 16, 2010 11:13
Avada
Den_Klimov
Кстати, Гислеру и на бета-форуме улучшения в этом направлении предлагали. Но это будет реализовано (если будет) уже, естественно, не в 7.55, а пока относится к списку "хотелок" для восьмёрки.