Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Активная панель на все окно 
Author Message
Volniy



PostPosted: Mon Jan 07, 2008 01:22    Post subject: Reply with quote

Ну да, а я и забыл Embarassed Тут, правда, есть один нюанс. Сохранение позиции это не совсем то, что нужно, потому как оно сохраняет не только положение сепаратора, а еще и размеры окна, его состояние и пр. Это немного некорректно, хотя может кому-то вполне подойдет.

Ладно, выдаю тогда сразу два варианта (закоментируйте ненужный и наоборот):
Code:
'=========================[ 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  ]===================


Last edited by Volniy on Mon Jan 07, 2008 03:02; edited 2 times in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group