Страница 5 из 5

Добавлено: Сб окт 29, 2011 16:02
Flasher
cojoc
Стоит заметить, что в таком случае придётся создавать в этих секциях кучу дублирующих строк, которых наверняка будет больше, чем требуемых. Допустим, сменных цветов нужно 20, а цветовых шаблонов штук 70. Это получается, что в каждой секции должно быть примерно по 160 строк, всего в двух секциях - 320, из которых реально нужно 20. Ну, и какой вариант предпочтительней? :wink:

Добавлено: Сб окт 29, 2011 19:13
cojoc
Flasher
Ну, и какой вариант предпочтительней?
Я использую "Поочерёдное переключение двух цветовых схем.vbs" от Flasher :) - он мне сейчас больше подходит, т.к. отличных цветов у меня мало.

Но схемы у людей разные бывают, наверняка у кого-то будет мало совпадений. К тому же не надо будет скрипт редактировать, а переключившись на другую схему можно её при надобности изменить средствами TC.

Добавлено: Сб окт 29, 2011 19:56
Flasher
cojoc
Я не думаю, что найдётся много пользователей, у которых несовпадающих значений будет больше хотя бы половины. Ну, а пользоваться средствами ТС можно при любом варианте.

Добавлено: Вт ноя 01, 2011 13:43
sa
Вариант ранее предлагавшегося скрипта, но без использования внешней утилиты (TCMC). Для вызова диалога настройки цветов необходимо назначить комбинацию клавиш (в рассматриваемом варианте это Ctrl+9) для команды cm_ColorConfig (делается через меню Конфигурация >Настройка > Разное). Поскольку уже имеется 10 нажатий клавиш из скрипта, то и одиннадцать не намного больше…

Код: Выделить всё

'  Описание: Переключает цвета в 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

Добавлено: Ср ноя 02, 2011 19:22
Flasher
sa писал(а):но без использования внешней утилиты (TCMC). Для вызова диалога настройки цветов необходимо назначить комбинацию клавиш (в рассматриваемом варианте это Ctrl+9
:shock: Как можно отказываться от утилиты в пользу каких-то, неизвестно на что назначенных горячих клавиш?

Добавлено: Ср ноя 02, 2011 20:21
sa
Flasher писал(а):Как можно отказываться от утилиты в пользу каких-то, неизвестно на что назначенных горячих клавиш?
Я и сам удивлён твоей гипотезой.

Добавлено: Ср ноя 02, 2011 20:38
Flasher
sa, какой гипотезой? Ты о чём?

Добавлено: Ср ноя 02, 2011 21:17
sa
Flasher
Будем считать, что это вариант для тех противников внешних утилит, кто ещё не назначил команду для Ctrl+9 или может подправить скрипт (либо поинтересоваться, как подправить) под свою свободную горячую клавишу.

Добавлено: Ср ноя 02, 2011 22:30
Flasher
sa писал(а):Будем считать, что это вариант для тех противников внешних утилит
Вот я поэтому и спросил, откуда такие странные приоритеты? Ты же для себя в первую очередь делаешь.

Добавлено: Ср ноя 02, 2011 23:18
sa
Flasher писал(а):откуда такие странные приоритеты?
Не знаю, по-моему это дело вкуса: использовать внешнюю утилиту или обойтись средствами ТК.

Добавлено: Ср ноя 02, 2011 23:25
Flasher
sa
Просто если дело сводить к замене на эмуляцию клавиш, то это нужно тогда для всех скриптов с утилитами предлагать по варианту с клавишами. Кому нужны эти лишние заморочки? К тому же в отношении эмуляций у меня мнение схожее с мнением Batya, т.е. против, и применяю их только в крайнем случае, когда нет более приемлемой альтернативы.

Добавлено: Ср ноя 02, 2011 23:55
sa
Flasher писал(а):и применяю их только в крайнем случае
Неприятно конечно, что целых 8 из 9 случаев (для диалога настройки цветов в твоих скриптах) у тебя оказались крайними.

Добавлено: Чт ноя 03, 2011 00:04
Flasher
sa
Каких 8 из 9 случаев? Откуда такое количество? Я всего 3 скрипта тут опубликовал, в 2-ух из которых есть метод SendKeys, необходимый в диалогах.

Добавлено: Чт ноя 03, 2011 00:14
sa
Flasher писал(а):Каких 8 из 9 случаев?
У тебя один вызов диалога утилитой и 8 эмуляций в нём: "+{TAB 5} ~". А у меня и того больше (10 эмуляций): "+{TAB 5} {ENTER}{TAB 2}".

Добавлено: Чт ноя 03, 2011 00:18
Flasher
sa
Мысль состояла в осмысленности применения, а не использовании как таковом.
Нажатия - это случаи? Мда.. Ладно, завязываем...