Batya

|
Posted: Wed Jul 25, 2007 11:31 Post subject: |
|
|
Сделал на vbs с использованием TC Script Helper.
Сначала скрипт для сохранения текущей цветовой схемы:
Code: | '=========================================================================================
' Копирование секций [COLORS] и [Searches] из wincmd.ini, путь к которому передан
' первым параметром, в ini-файл, имя которого передано вторым параметром.
' Третьим параметром нужно передать название создаваемой схемы.
' В ini-файле-приемнике секции сохраняются:
' [COLORS] -> [{Имя схемы}] и [Searches] -> [Srch:{Имя схемы}]
' Если в ini-файле-приемнике такие секции уже существует, они будут заменены.
' Пример вызова из TC:
' %COMMANDER_INI% %COMMANDER_PATH%\Utils\TCColPS\Presets.ini "Batya"
' ! Внимание ! Параметры с использованием переменных окружения необходимо указывать
' в строке "Команда", а не в строке "Параметры".
'========================================================================================
Option Explicit
If WScript.Arguments.Count < 3 Then
MsgBox "Неправильно заданы параметры!", _
vbOKOnly + vbCritical, _
"Копирование схемы настройки цветов TC"
WScript.Quit
End If
Dim FSO, TCS, Ini1, Ini2, Name, Colors, Searches
Ini1 = WScript.Arguments(0)
Ini2 = WScript.Arguments(1)
Name = WScript.Arguments(2)
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FileExists(Ini1) Then
MsgBox "Неправильно задан первый параметр - путь к wincmd.ini!", _
vbOKOnly + vbCritical, _
"Копирование схемы настройки цветов TC"
Set FSO = Nothing
WScript.Quit
End If
If Not FSO.FileExists(Ini2) Then
MsgBox "Неправильно задан второй параметр - путь к ini-файлу-приемнику!", _
vbOKOnly + vbCritical, _
"Копирование схемы настройки цветов TC"
Set FSO = Nothing
WScript.Quit
End If
Set FSO = Nothing
Set TCS = CreateObject("TCScript.Helper")
Colors = TCS.INIReadSection(Ini1, "COLORS" )
Searches = TCS.INIReadSection(Ini1, "Searches")
TCS.INIWriteSection Ini2, Name , Colors
TCS.INIWriteSection Ini2, "Srch:" & Name, Searches
Set TCS = Nothing
MsgBox "Операция завершена", _
vbOKOnly + vbInformation, _
"Копирование схемы настройки цветов TC"
WScript.Quit |
Второй скрипт непосредственно для установки нужной схемы:
Code: | '=========================================================================================
' Копирование секций [COLORS] и [Searches] в wincmd.ini, путь к которому передан
' первым параметром, из ini-файла, имя которого передано вторым параметром.
' Третьим параметром нужно передать название копируемой схемы.
' Соответствие секций ini-файла-источника секциям wincmd.ini:
' [{Имя схемы}] -> [COLORS] и [Srch:{Имя схемы}] -> [Searches]
' Пример вызова из TC:
' %COMMANDER_INI% %COMMANDER_PATH%\Utils\TCColPS\Presets.ini "Batya"
' ! Внимание ! Параметры с использованием переменных окружения необходимо указывать
' в строке "Команда", а не в строке "Параметры".
'========================================================================================
Option Explicit
Dim Exclusion
'=============== Изменяемые параметры ===================================================
' Параметры секции [COLORS], значения которых НЕ копируются
Exclusion = Array("InverseCursor", "BackColor", "ForeColor", "MarkColor", _
"CursorColor", "CursorText", "InverseSelection", "CompareText", _
"CompareTextSel", "CompareBinary", "CompareBinarySel", "BackColor2")
'========================================================================================
If WScript.Arguments.Count < 3 Then
MsgBox "Неправильно заданы параметры!", _
vbOKOnly + vbCritical, _
"Копирование схемы настройки цветов TC"
WScript.Quit
End If
Dim FSO, TCS, Ini1, Ini2, Name, Colors, Searches, i, DimExcl, ExclVal()
DimExcl = UBound(Exclusion)
ReDim ExclVal(DimExcl)
Ini1 = WScript.Arguments(0)
Ini2 = WScript.Arguments(1)
Name = WScript.Arguments(2)
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FileExists(Ini1) Then
MsgBox "Неправильно задан первый параметр - путь к wincmd.ini!", _
vbOKOnly + vbCritical, _
"Копирование схемы настройки цветов TC"
Set FSO = Nothing
WScript.Quit
End If
If Not FSO.FileExists(Ini2) Then
MsgBox "Неправильно задан второй параметр - путь к ini-файлу-приемнику!", _
vbOKOnly + vbCritical, _
"Копирование схемы настройки цветов TC"
Set FSO = Nothing
WScript.Quit
End If
Set FSO = Nothing
Set TCS = CreateObject("TCScript.Helper")
For i = LBound(Exclusion) To DimExcl
ExclVal(i) = TCS.INIRead(Ini1, "COLORS", Exclusion(i), "")
Next
Colors = TCS.INIReadSection(Ini2, Name )
Searches = TCS.INIReadSection(Ini2, "Srch:" & Name)
If Len(Colors) > 0 Then
TCS.INIWriteSection Ini1, "COLORS" , Colors
End If
If Len(Searches) > 0 Then
TCS.INIWriteSection Ini1, "Searches", Searches
End If
For i = LBound(Exclusion) To DimExcl
If Len(ExclVal(i)) > 0 Then
TCS.INIWrite Ini1, "COLORS", Exclusion(i), ExclVal(i)
Else
TCS.INIDelete Ini1, "COLORS", Exclusion(i)
End If
Next
TCS.Pause = 0
TCS.SendCommand "cm_ColorConfig"
TCS.SendKeystroke "+{TAB 4} "
TCS.SendKeystroke "{ENTER}"
TCS.SendKeystroke "{TAB}"
TCS.SendKeystroke "{ENTER}"
Set TCS = Nothing
WScript.Quit |
|
|