|
Название | DetectColorFilter |
Имя файла (*.txt) | DetectColorFilter.txt |
Описание | Определяет, какие цветовые фильтры используются для текущего файла/директории |
Автор | Вахмурка |
Параметры | ("%P", "%N") |
Вызываемые плагины | win, childwin, ini, tc, osd, vec, clip, file |
Иконка | |
Версия | 2.0 |
Дата обновления | 08.06.2009 |
args Path, Obj local hwnd = win.handle("c=TTOTAL_CMD") local Config = "путь\wincmd.ini" local ColorKeys = ini.enum_keys(Config, "Colors") local Counter = line(ColorKeys, 0) local Panel = ifelse(tc.active(hwnd) == "left", 8, 7) local TMLB = childwin.handle(hwnd, "TMyListBox", Panel) local i, j, OneKey, Str v = vec.create(0, 1) if(not v) do messagebox("ok error", "Vector not created", "VEC plugin error #1") quit endif for(i = 1; i <= Counter; i++) OneKey = line(ColorKeys, i) if(index(OneKey, "ColorFilter") != 0 && revindex(OneKey, "Color") == 1) do OneKey = ini.get(Config, "Colors", OneKey) vec.insert(v, vec.length(v), OneKey) endif endfor Counter = vec.length(v) if(not Counter) do Str = "No color filter is specified in configuration" messagebox("ok warning", Str, "DetectColorFilter Script") vec.destroy(v) quit endif w = vec.create(0, 1) if(not w) do messagebox("ok error", "Vector not created", "VEC plugin error #2") quit endif win.sendmessage(hwnd, 0x400+51, 524, 0) ColorKeys = clip.get if(file.isfolder(Path ++ Obj)) do Obj ++= "\" flag set 1 else flag clear 1 endif for(i = 0; i < Counter; i++) osd.show(i + 1 ++ " / " ++ Counter, "INFINITE", "30", "Arial", "-1", "255 000 000") for(win.class(win.getfocus()) != "TMyListBox") endfor win.postmessage(hwnd, 0x400+51, 521, 0) for(win.class(win.getfocus()) == "TMyListBox") endfor OneKey = win.getfocus() for(win.class(OneKey) != "Edit") OneKey = win.getfocus() endfor win.settext(OneKey, v[i]) keys {enter} for(win.class(OneKey) == "Edit") OneKey = win.getfocus() endfor OneKey = win.getfocus() win.sendmessage(OneKey, 245, 0, 0) for(win.class(win.getfocus()) == "Button") win.sendmessage(win.getfocus(), 245, 0, 0) endfor OneKey = win.sendmessage(TMLB, 0x0190, 0, 0) if(OneKey) do clip.clear win.postmessage(hwnd, 0x400+51, 2017, 0) wait.for(clip.get) Str = clip.get for(j = 1; j <= OneKey; j++) if(line(Str, j) == Obj) do Panel = ini.get(Config, "Colors", "ColorFilter" ++ i + 1) vec.insert(w, 0, Panel) endif endfor win.postmessage(hwnd, 0x400+51, 524, 0) endif endfor osd.hide() clip.set(ColorKeys) Panel = vec.length(w) if(not Panel) do Str = "Are you really sure the file/directory " ++ Obj ++ " is colored?" messagebox("ok warning", Str, "No appropriate color filter found") vec.destroy(v) vec.destroy(w) quit endif OneKey = Panel ++ " color filters found for " OneKey = OneKey ++ ifelse(pproflag(1), "directory ", "file ") ++ Obj Str = "" for(i = Panel - 1; i >= 0; i--) for(j = 1; j <= Counter; j++) if(v[j - 1] == w[i]) do Str = Str ++ "Color filter #" ++ j ++ ": " Str = Str ++ remove(w[i], 1) ++ esc(?+\n+, ?+\+) endif endfor endfor messagebox("ok information", Str, OneKey) vec.destroy(v) vec.destroy(w)
Внимание! Скрипт не работает в Total Commander 7.5 pb1 и pb2!
Версия данного скрипта для Total Commander 7.0 и старше.
Так называемые цветовые фильтры - очень удобное средство зрительного различения файлов и директорий. К сожалению, при большом количестве фильтров они начинают вступать в сложные взаимоотношения: каждый файл может оказаться удовлетворяющим критериям сразу нескольких фильтров. Тогда используется тот, который имеет наибольший приоритет (стоит выше в списке фильтров). Иногда бывает необходимо выяснить, какие именно фильтры используются для конкретного файла, и какой из них имеет приоритет. К сожалению, никаких средств ответить на этот вопрос Total Commander не предоставляет.
Установите курсор на интересующий файл или директорию и запустите скрипт. Если в текущей вкладке была выделена группа, выделение снимется. В течение работы скрипта не рекомендуется переключаться в другие окна. Закончив работу, скрипт выдаст диалоговое окно. В нем в приоритетном порядке будут перечислены все цветовые фильтры, подходящие для данного файла.
На главную | Все о Total Commander | PowerPro | Все скрипты |