View previous topic :: View next topic |
Author |
Message |
DoctorIkari

Joined: 28 Feb 2010 Posts: 53 Location: Nihon
|
(Separately) Posted: Wed Jun 04, 2014 19:27 Post subject: Вкл./Выкл. подсвечивания новых файлов |
|
|
Здравствуйте.
Новые фалы/папки подсвечиваются цветом. Довольно удобная фича. Но если, к примеру, присутствует необходимость определять файлы визуально по их цвету в зависимости от расширения, то подсветка новых файлов перекрывает другие правила. Как это можно обойти без переключения настроек вручную?
Спасибо.
P.S. Есть подозрение, что такую кнопку можно реализовать средствами тотала, но... это только подозрения  _________________ The right man in the wrong place can make all the difference in the world... (hl2) |
|
Back to top |
|
 |
Avada

Joined: 01 Aug 2008 Posts: 10415 Location: Россия, Саратов
|
(Separately) Posted: Wed Jun 04, 2014 19:54 Post subject: |
|
|
DoctorIkari
Надеюсь, известно, откуда эта подсветка новых объектов берётся и как вообще работает. (Если не очень, рекомендуется поиск по форуму, например, по имени плагина Age, а также вдумчивое чтение справки, особенно в части касательно "выше/ниже в списке".) Да, подсветка новых файлов не будет перекрывать подсветку по другим критериям, если находится ниже в списке. Но много ли от неё тогда будет толку? Либо новые файлы подсвечиваются специфическим цветом, потому что они новые, либо сохраняют цвет для своего типа, заданный в настройках, и ничем по подсветке не отличаются от старых. Или-или. Что предлагается? Какую-то про счёту строку в диалоговом списке вверх/вниз каким-то скриптом таскать, что ли? Теоретически можно придумать всё, но в удобстве и успешности этой затеи не уверен. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Jun 04, 2014 20:42 Post subject: |
|
|
Avada wrote: | Какую-то про счёту строку в диалоговом списке вверх/вниз каким-то скриптом таскать, что ли? | Можно и не скриптом, достаточно TCFS2. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
LonerD

Joined: 04 Jan 2011 Posts: 1172 Location: Макеевка
|
(Separately) Posted: Wed Jun 04, 2014 21:45 Post subject: |
|
|
Quote: | Вкл./Выкл. подсвечивания новых файлов |
Если не таскать строки, а просто полностью включить/отключить подсветку - то несложно организовать скриптом Autohotkey - сделать одной командой/кнопокой, срабатывать будет без перезапуска Тотала.
Нужно только знать как выглядит соответствующая запись в секции [Colors] и название файла, в котором эта секция расположена. _________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
 |
DoctorIkari

Joined: 28 Feb 2010 Posts: 53 Location: Nihon
|
(Separately) Posted: Wed Jun 04, 2014 22:45 Post subject: |
|
|
LonerD, к сожалению, с Autohotkey не работал.
http://forum.wincmd.ru/viewpost.php?p=14123
Тут говорится про то, что ищем Totalcmd.inc команду... но таскать строки - такой команды нет. А без перетаскивания вообще ничего не понятно.
Подскажите, если не сложно  _________________ The right man in the wrong place can make all the difference in the world... (hl2) |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Jun 04, 2014 23:57 Post subject: |
|
|
LonerD wrote: | то несложно организовать скриптом Autohotkey | Я бы так не сказал, поскольку каждый раз придётся менять порядковый номер у всех последующих ключей. Скорость от такого подхода точно не возрастёт, внутренний инструмент сделает это куда быстрее, поэтому перетаскивание и актуально. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
LonerD

Joined: 04 Jan 2011 Posts: 1172 Location: Макеевка
|
(Separately) Posted: Thu Jun 05, 2014 03:29 Post subject: |
|
|
Flasher
Универсальности тут быть не может. Нельзя сделать единый скрипт, который бы работал без модификаций на любых Тоталах, потому как различаются названия ключей (номера ключей) и их значения. Потому можно сделать только варианты для частного случая. Задачи перетаскивания не было поставлено в изначальном вопросе. Нужно просто полностью отключать определённое правило в цветовой схеме, а если оно уже отключено - включить.
DoctorIkari
Набросал вот такой вариант для TC 8.51a.
Работа в старых версиях возможна, но не проверялась (всё зависит ).
Вместо ColorFilterX указать свой ключ с шаблоном поиска (или ключи если таковых несколько, потому и оставил фигурные скобки).
В скрипте предусмотрено определение битности Тотала, определение положения ini-файла настроек (в случае редиректа) скрытие всех операций (чтобы не мельтешили перед глазами). Кратковременное "моргание" окошка настроек и курсора (в некоторых случаях) побороть скорее всего не представляется возможным. За качество кода попрошу не выражаться.
В случае несрабатывания можно попробовать изменить значения команды SetKeyDelay и SetControlDelay.
Сохранить скрипт в текстовый файл с любым именем (например, Script.ahk). Скачать AutoHotkey, распаковать и запустить
Autohotkey.exe Script.ahk
(можно повесить на панель инструментов или сделать пользовательскую ем-комманду).
Code: | ;================================================================
; Вкл/выкл. подсвечивание файлов за датою
; Версия скрипта: 1.2
; Дата створення: 2014.06.05
; Автор скрипта: LonerD
;================================================================
#NoEnv
#NoTrayIcon
#SingleInstance ignore
SetKeyDelay, 50, 50
SetControlDelay, 20
if WinActive( "ahk_class TTOTAL_CMD" )
{
EnvGet, commander_path, commander_path
EnvGet, commander_ini, commander_ini
; Определяем редирект секции цветов
IniRead, RedirectColors, % commander_ini, Colors, RedirectSection, 0
Transform, ColorsINI, Deref, % (RedirectColors ? RedirectColors : commander_ini)
; Определяем битность ТС и задаём переменные
WinGet, TCHWND, ID, ahk_class TTOTAL_CMD
WinGet, TCControls, ControlList, ahk_id %TCHWND%
Loop, Parse, TCControls, `n, `r
{
if ((A_LoopField = "TMyListBox1") || (A_LoopField = "TMyListBox2"))
{
TCheckBox2 := "TCheckBox2"
TButton35 := "TButton35"
TButton37 := "TButton37"
break
}
else
{
TCheckBox2 := "Button5"
TButton35 := "Button14"
TButton37 := "Button16"
}
}
; Блокируем перерисовку окна
DllCall("LockWindowUpdate", "uint", TCHWND)
; Включаем-отключаем подсвечивание
IniRead, DateColor, % ColorsINI, Colors, ColorFilterX
StringReplace, DateColor, DateColor, %A_Space%-Commented-Bebebe, , UseErrorLevel
if ErrorLevel = 0
{
DateColor := DateColor . " -Commented-Bebebe"
}
IniWrite, % DateColor, % ColorsINI, Colors, ColorFilterX
; Вызываем окно настроек, делаем его прозрачным и нажимаем кнопки
PostMessage, 0x433, 494,,, ahk_class TTOTAL_CMD
WinWait, ahk_class TDLGCONFIGALL
WinSet, Transparent, 0, ahk_class TDLGCONFIGALL
Sleep, 50
ControlFocus, % TCheckBox2, ahk_class TDLGCONFIGALL
ControlSend, % TCheckBox2, {Space}, ahk_class TDLGCONFIGALL
ControlFocus, % TButton35, ahk_class TDLGCONFIGALL
ControlSend, % TButton35, {Space}, ahk_class TDLGCONFIGALL
ControlFocus, % TCheckBox2, ahk_class TDLGCONFIGALL
ControlSend, % TCheckBox2, {Space}, ahk_class TDLGCONFIGALL
ControlFocus, % TButton35, ahk_class TDLGCONFIGALL
ControlSend, % TButton35, {Space}, ahk_class TDLGCONFIGALL
ControlFocus, % TButton37, ahk_class TDLGCONFIGALL
ControlSend, % TButton37, {Space}, ahk_class TDLGCONFIGALL
; Контрольная проверка
IfWinNotActive, ahk_class TTOTAL_CMD
{
ControlFocus, % TButton37, ahk_class TDLGCONFIGALL
ControlSend, % TButton37, {Space}, ahk_class TDLGCONFIGALL
}
; Разблокируем окно ТС
DllCall("LockWindowUpdate", "uint", 0)
}
Exit
;================================================================
|
Если имеется несколько ключей (например, два), ответственных за изменение раскраски даты, то заменяем фрагмент
Code: | IniRead, DateColor, % ColorsINI, Colors, ColorFilterX
StringReplace, DateColor, DateColor, %A_Space%-Commented-Bebebe, , UseErrorLevel
if ErrorLevel = 0
{
DateColor := DateColor . " -Commented-Bebebe"
}
IniWrite, % DateColor, % ColorsINI, Colors, ColorFilterX |
на
Code: | IniRead, DateColor1, % ColorsINI, Colors, ColorFilterX
IniRead, DateColor2, % ColorsINI, Colors, ColorFilterY
StringReplace, DateColor, DateColor, %A_Space%-Commented-Bebebe, , UseErrorLevel
if ErrorLevel = 0
{
DateColor1 := DateColor1 . " -Commented-Bebebe"
DateColor2 := DateColor2 . " -Commented-Bebebe"
}
IniWrite, % DateColor1, % ColorsINI, Colors, ColorFilterX
IniWrite, % DateColor2, % ColorsINI, Colors, ColorFilterY |
, где ColorFilterX, ColorFilterY - имена ключей в вашем файле конфигурации.
Upd. Обновил. Слегка подчистил индусский код.
Upd2. Обновил оптять. Добавил автоопределение наличия редиректа секции ini-файла.
Upd3. Обновил снова. Теперь не нужно указывать значения ключа, ответственного за подсветку по дате, он просто комментируется. _________________ Windows 11 | TC DreamLair eternal pre-α
Last edited by LonerD on Fri Jun 06, 2014 02:19; edited 3 times in total |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Jun 05, 2014 04:48 Post subject: |
|
|
LonerD
Code: | if ( DateColor = "Bebebe" )
{
IniWrite, НЕСтарше1часа, % ColorsINI, Colors, ColorFilterX
}
else
{
IniWrite, Bebebe, % ColorsINI, Colors, ColorFilterX
} | Смену значения ключа с самого начала проверял, но почему-то выдавало общий цвет текста. Сейчас вроде бы нет. Хм. Тогда никакой перебор номеров и не нужен, ошибся я. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
Avada

Joined: 01 Aug 2008 Posts: 10415 Location: Россия, Саратов
|
(Separately) Posted: Thu Jun 05, 2014 08:23 Post subject: |
|
|
LonerD
Flasher
Загляните, пожалуйста, в ЛС. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
 |
DoctorIkari

Joined: 28 Feb 2010 Posts: 53 Location: Nihon
|
(Separately) Posted: Thu Jun 05, 2014 20:40 Post subject: |
|
|
LonerD, прошу прощения, никак не могу подогнать скрипт.
TC 8.51a. Цветовые схемы я создавал не из списка по умолчанию (добавил "не старше 1 дня" и "не старше 1 часа").
В Totalcmd.inc хранятся стандартные команды. А как тогда применять пользовательские и как подправить скрипт?
Спасибо. _________________ The right man in the wrong place can make all the difference in the world... (hl2) |
|
Back to top |
|
 |
LonerD

Joined: 04 Jan 2011 Posts: 1172 Location: Макеевка
|
(Separately) Posted: Thu Jun 05, 2014 21:10 Post subject: |
|
|
DoctorIkari
Я обновил скрипт. Теперь уже вручную не нужно указывать значения ключей.
Quote: | как подправить скрипт |
Нужно исправить только имена ключей ColorFilterX на свои (под которыми в ini-файле прописаны шаблоны раскраски в зависимости от даты/времени).
Quote: | А как тогда применять пользовательские |
Пользовательские команды в AutoHotkey-скрипте можно использовать с помощью такой функции. _________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2692
|
(Separately) Posted: Fri Jun 06, 2014 00:35 Post subject: |
|
|
DoctorIkari wrote: | Цветовые схемы я создавал не из списка по умолчанию (добавил "не старше 1 дня" и "не старше 1 часа") |
Кнопка с использованием утилиты TCFS2:
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "if(tcini(TCFS2, ColorOff, 0, 0), set_tcini(Colors, ColorFilter2, `>Выкл не старше 1 часа`) + set_tcini(Colors, ColorFilter3, `>Выкл не старше 1 дня`) + set_tcini(TCFS2, ColorOff, 1), set_tcini(Colors, ColorFilter2, `>не старше 1 часа`) + set_tcini(Colors, ColorFilter3, `>не старше 1 дня`) + set_tcini(TCFS2, ColorOff, 0)) tcm(494, 1) delay(500) send(`+{TAB 5} {ENTER}`, findwnd(`TDLGCONFIGALL`))"
wcmicons.dll,20
Выкл/вкл подсвечивание файлов не старше 1 часа и не старше 1 дня
-1
| Кнопка приведена для случая , когда в диалоге цветов для типов файлов, шаблон ">не старше 1 часа" идёт вторым сверху, а шаблон ">не старше 1 дня" - третьим. Если порядковые номера другие, то имена ключей ColorFilter2 и ColorFilter3 (каждый в двух местах строки параметров), надо соответствующим образом заменить.
При экспериментах с кнопкой стоит сохранить копию wincmd.ini. |
|
Back to top |
|
 |
DoctorIkari

Joined: 28 Feb 2010 Posts: 53 Location: Nihon
|
(Separately) Posted: Fri Jun 06, 2014 02:06 Post subject: |
|
|
Все равно не понятно.
Для начала попробовал прикрутить чего-нибудь системного. Вроде не меняется.
Code: | ; Включаем-отключаем подсвечивание
IniRead, DateColor1, % ColorsINI, Colors, 3312
IniRead, DateColor2, % ColorsINI, Colors, 3313
StringReplace, DateColor, DateColor, %A_Space%-Commented-Bebebe, , UseErrorLevel
if ErrorLevel = 0
{
DateColor1 := DateColor1 . " -Commented-Bebebe"
DateColor2 := DateColor2 . " -Commented-Bebebe"
}
IniWrite, % DateColor1, % ColorsINI, Colors, 3312
IniWrite, % DateColor2, % ColorsINI, Colors, 3313 |
Зато нашёл куда пишет цветовые схемы. В моём случае: d:\SYSTEM\Total Commander\Plugins\exe\colors\colors\tce-dark-grey.ini
Code: | [Colors]
BackColor2=7237230
ColorFilter1=>Обозначение файлов с комментариями
ColorFilter1Color=6881077
BackColor=6381921
ForeColor=-1
InverseCursor=0
InverseSelection=0
MarkColor=-1
CursorColor=65280
CursorText=0
ColorFilter2=>Пустые каталоги
ColorFilter2Color=11529
ColorFilter3=>Неверная дата
ColorFilter3Color=15079967
ColorFilter4=>Не старше 1 часа
ColorFilter4Color=9804543
ColorFilter5=>Не старше 1 дня
ColorFilter5Color=14145535
ColorFilter6=*.bak
ColorFilter6Color=65280
ColorFilter7=>Изображения
ColorFilter7Color=16750591
ColorFilter8=>Исполняемые файлы
ColorFilter8Color=4226815
ColorFilter9=*.key
ColorFilter9Color=12254640
ColorFilter10=>Аудио-файлы
ColorFilter10Color=33023
ColorFilter11=>Видео-файлы
ColorFilter11Color=7012351
ColorFilter12=>Системные файлы (атрибут)
ColorFilter12Color=64
ColorFilter13=>Архивы
ColorFilter13Color=1553675
ColorFilter14=>Документы, книги
ColorFilter14Color=16758711
ColorFilter15=*.ini
ColorFilter15Color=45232
ColorFilter16=*.txt
ColorFilter16Color=16777215 |
Даже с системными командами не получается чего-то.
Если не затруднит - напишите, пожалуйста, скрипт для данного частного случая.  _________________ The right man in the wrong place can make all the difference in the world... (hl2) |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2692
|
(Separately) Posted: Fri Jun 06, 2014 07:59 Post subject: |
|
|
DoctorIkari wrote: | ColorFilter4=>Не старше 1 часа
...
ColorFilter5=>Не старше 1 дня |
Случай , когда шаблон ">Не старше 1 часа" идёт четвёртым, а шаблон ">Не старше 1 дня" - пятым.
Кнопка: Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "if(tcini(TCFS2, ColorOff, 0, 0), set_tcini(Colors, ColorFilter4, `>Выкл Не старше 1 часа`) + set_tcini(Colors, ColorFilter5, `>Выкл Не старше 1 дня`) + set_tcini(TCFS2, ColorOff, 1), set_tcini(Colors, ColorFilter4, `>Не старше 1 часа`) + set_tcini(Colors, ColorFilter5, `>Не старше 1 дня`) + set_tcini(TCFS2, ColorOff, 0)) tcm(494, 1) delay(500) send(`+{TAB 5} {ENTER}`, findwnd(`TDLGCONFIGALL`))"
wcmicons.dll,20
Выкл/вкл подсвечивание файлов не старше 1 часа и не старше 1 дня
-1
|
|
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Jun 07, 2014 00:33 Post subject: |
|
|
Та же схема, но только без мацания лишнего ключа и с более быстрым окнепрыгом: Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "if(tcini(Colors,ColorFilter4,#)+tcini(Colors,ColorFilter5,#), set_tcini(Colors,ColorFilter4,`>Не старше 1 часа`) + set_tcini(Colors,ColorFilter5,`>Не старше 1 дня`), set_tcini(Colors,ColorFilter4,`4:`) + set_tcini(Colors,ColorFilter5,`5:`)) tcm(494,1) eval(send_wait(`+{TAB 5} {TAB 5} {ESC}`,findwnd(`TDLGCONFIGALL`)))"
wcmicons.dll,13
Вкл./выкл. подсвечивание файлов не старше 1 часа и 1 дня | Используется исправленная TCFS2.exe. TCFS2.ini должен быть из последнего релиза. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Sat Jun 07, 2014 01:52; edited 1 time in total |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|