Volniy

|
Posted: Mon Jan 07, 2008 01:22 Post subject: |
|
|
Ну да, а я и забыл Тут, правда, есть один нюанс. Сохранение позиции это не совсем то, что нужно, потому как оно сохраняет не только положение сепаратора, а еще и размеры окна, его состояние и пр. Это немного некорректно, хотя может кому-то вполне подойдет.
Ладно, выдаю тогда сразу два варианта (закоментируйте ненужный и наоборот):
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 |
|