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: Кнопка для изменения цветовой схемы TC 
Author Message
sa



PostPosted: Tue Nov 01, 2011 13:43    Post subject: Reply with quote

Вариант ранее предлагавшегося скрипта, но без использования внешней утилиты (TCMC). Для вызова диалога настройки цветов необходимо назначить комбинацию клавиш (в рассматриваемом варианте это Ctrl+9) для команды cm_ColorConfig (делается через меню Конфигурация >Настройка > Разное). Поскольку уже имеется 10 нажатий клавиш из скрипта, то и одиннадцать не намного больше…
Code:
'  Описание: Переключает цвета в TC, переименовывая друг в друга секции [Colors] и [Colors2]
'Требования: Для вызова внутренней команды cm_ColorConfig назначить комбинацию клавиш Ctrl+9
'-------------------------------------------------------------------------------------------
Option Explicit
Dim FSO, WSH, F, Str1 , Str2, Text
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
F = FSO.GetAbsolutePathName(WSH.ExpandEnvironmentStrings("%COMMANDER_INI%"))
Str1 = vbNewLine & "[Colors]"
Str2 = vbNewLine & "[Colors2]"
Text = FSO.OpenTextFile(F, 1).ReadAll
If InStr(1, Text, vbNewLine & "C+9=cm_ColorConfig", 1) > 0 Then
  Text = Replace(Text, Str1, Str1 & "#", 1, -1, 1)
  Text = Replace(Text, Str2, Str1, 1, -1, 1)
  Text = Replace(Text, Str1 & "#", Str2, 1, -1, 1)
  FSO.OpenTextFile(F, 2).Write Text
  WSH.SendKeys "^9+{TAB 5}  {ENTER}"         ' ^9 - вызов cm_ColorConfig комбинацией Ctrl+9
  If InStr(1, Text, "activeTitle", 1) > 0 Then WSH.SendKeys "{TAB 2}"
Else
  MsgBox "Назначьте на Ctrl+9 команду cm_ColorConfig", vbOKOnly + vbCritical,"Ошибка"
End If
Set WSH = Nothing
Set FSO = Nothing
WScript.Quit
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group