Активная панель на все окно
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
Активная панель на все окно
есть ли комбинация клавиш: Активная панель на всю ширину окна выкл/вкл, как было в NC ? примерно как команда "cm_50Percent" только не 50 процентов, а 100.
-
DrShark
- Сообщения: 911
- Зарегистрирован: Сб окт 21, 2006 20:27
- Откуда: Kyiv, Ukraine
- Контактная информация:
Это есть в to-do списке автора Total Commander для следующей версии TC:
http://ghisler.ch/board/viewtopic.php?p=134367#134367
http://ghisler.ch/board/viewtopic.php?p=134367#134367
когда-то вполне нормально работало вот это. Это не совсем точно то, но очччень близко.
-
DrShark
- Сообщения: 911
- Зарегистрирован: Сб окт 21, 2006 20:27
- Откуда: Kyiv, Ukraine
- Контактная информация:
C помощью того же скрипта можно изменять параметр wincmd.ini Divider, но для этого, как я понял, нужно получить разрешение экрана, т.к. этот параметр находится в секции вида
Насколько это реально, лучше знает автор скрипта.Справка писал(а):[1024x768 (10x20)] - Данные, зависящие от разрешения экрана и размера шрифта (размер шрифта определяется числами в скобках: (8x16) — для нормального и уменьшенного шрифта, (10x20) — для крупного шрифта).
В принципе это все возможно, но весьма геморно. Для этого придется задействовать WMI, что не всегда приемлемо. Есть два (как минимум, и не считая реквеста к Гислеру) обходных решения:
1) Не определять программно имя текущей секцию с параметром Divider, а определив его "вручную" одиножды, задать его в скрипте жестко.
2) Отключить вообще систему разделения настроек внешнего вида по выбранному шрифту и разрешению экрана. Для этого достаточно добавления параметра ResolutionSpecific=0 в секцию [Configuration]. После этого настройки для всех разрешений и размеров шрифтов будут храниться в одной общей секции [AllResolutions] (для удобства просто переименуйте активную секцию, используя именно это имя).
Какой вариант более приемлемый?
1) Не определять программно имя текущей секцию с параметром Divider, а определив его "вручную" одиножды, задать его в скрипте жестко.
2) Отключить вообще систему разделения настроек внешнего вида по выбранному шрифту и разрешению экрана. Для этого достаточно добавления параметра ResolutionSpecific=0 в секцию [Configuration]. После этого настройки для всех разрешений и размеров шрифтов будут храниться в одной общей секции [AllResolutions] (для удобства просто переименуйте активную секцию, используя именно это имя).
Какой вариант более приемлемый?
Ну да, а я и забыл
Тут, правда, есть один нюанс. Сохранение позиции это не совсем то, что нужно, потому как оно сохраняет не только положение сепаратора, а еще и размеры окна, его состояние и пр. Это немного некорректно, хотя может кому-то вполне подойдет.
Ладно, выдаю тогда сразу два варианта (закоментируйте ненужный и наоборот):
Ладно, выдаю тогда сразу два варианта (закоментируйте ненужный и наоборот):
Код: Выделить всё
'=========================[ 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 ]===================
Последний раз редактировалось Volniy Пн янв 07, 2008 02:02, всего редактировалось 2 раза.
Почему-то после выполнения команды TCS.Separator=100 в задачах системы остается запись 100% - указывает на процесс Totalcmd.exe. И появляется и не исчезает всплывающее значение позиции разделителя. Для других значений такого поведения не наблюдается.
TC 7.50 beta 7
Код: Выделить всё
Dim TCS
Set TCS = CreateObject("TCScript.Helper")
TCS.LockTC True
TCS.Separator = 100
TCS.LockTC False
Set TCS = Nothing
Wscript.Quit()
Errare humanum est
-
Den_Klimov
- Сообщения: 207
- Зарегистрирован: Пт ноя 03, 2006 11:27
- Откуда: Ukraine.Kiev
Команды\кнопки управления разделителем файл-панелей в Тотале
В Тотале имеется уж давненько встроенная команда "Установить границу файловых панелей по центру".
Но насколько помню никаких иных внутренних команд для управления разделителем файловых панелей НЕТ. Всё приходится делать мышей, да и то самым неудобным способом.
Тем не менее потребность в других командах для клавиатурников есть. И она весьма велика.
Хотя бы в таких двух:
- растянуть активную файловую панель на весь Тотал (полностью скрыв таким образом противоположную панель)
или
- растянуть активную файловую панель в сотношении 80\20
Естественно подразумевается возможность сделать это не перезагружая Тотал.
У кого-то есть какие-то идеи по этом поводу?
Реально ли вообще сделать пользовательские команды с двумя такими функциями (или хотя бы с первой) при помощи каких-то внешних костылей, не перекоцывая полностью Total?
Хотелось бы повесить на эти функции клавиатурные сочетания и заодно кнопки для мышатников, но встренных в Тотал таких команд насколько помню нет.
Но насколько помню никаких иных внутренних команд для управления разделителем файловых панелей НЕТ. Всё приходится делать мышей, да и то самым неудобным способом.
Тем не менее потребность в других командах для клавиатурников есть. И она весьма велика.
Хотя бы в таких двух:
- растянуть активную файловую панель на весь Тотал (полностью скрыв таким образом противоположную панель)
или
- растянуть активную файловую панель в сотношении 80\20
Естественно подразумевается возможность сделать это не перезагружая Тотал.
У кого-то есть какие-то идеи по этом поводу?
Реально ли вообще сделать пользовательские команды с двумя такими функциями (или хотя бы с первой) при помощи каких-то внешних костылей, не перекоцывая полностью Total?
Хотелось бы повесить на эти функции клавиатурные сочетания и заодно кнопки для мышатников, но встренных в Тотал таких команд насколько помню нет.