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

Joined: 01 Aug 2008 Posts: 10420 Location: Россия, Саратов
|
(Separately) Posted: Mon Dec 27, 2010 22:43 Post subject: |
|
|
Flasher
Тут дело не в наводке Гислеру. По-моему, реализовать такое через внутренние ассоциации в принципе невозможно. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Dec 27, 2010 23:04 Post subject: |
|
|
Avada wrote: | По-моему, реализовать такое через внутренние ассоциации в принципе невозможно. | Об этом судить должен автор, как мне кажется. 
Last edited by Flasher on Mon Dec 27, 2010 23:40; edited 1 time in total |
|
Back to top |
|
 |
Tol!k

Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Mon Dec 27, 2010 23:06 Post subject: |
|
|
DeathStalker wrote: | этот вариант тоже имеет право на жизнь | Согласен.
Если папки/файлы редко меняются — пройтись скриптом, который рассуёт соответствующие desktop.ini и .ico |
|
Back to top |
|
 |
Avada

Joined: 01 Aug 2008 Posts: 10420 Location: Россия, Саратов
|
(Separately) Posted: Tue Dec 28, 2010 00:00 Post subject: |
|
|
Flasher
Желающие могут попытаться зарепортить. С интересом понаблюдаю за результатом, но сам по-прежнему полагаю, что реализация запрошенной фичи невозможна (хотя открывать здесь развёрнутую дискуссию с приведением аргументов не буду). _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2227 Location: Москва, Россия
|
(Separately) Posted: Tue Dec 28, 2010 11:04 Post subject: |
|
|
Tol!k wrote: | Если папки/файлы редко меняются — пройтись скриптом, который рассуёт соответствующие desktop.ini и .ico |
Можно с использованием Script Content Plugin создать шаблон раскраски (без раскраски как таковой) и менять иконки скриптом, запускаемым плагином.
Даже уже есть рыба. Только пока совершенно нет времени  _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
 |
Fulkabaster
Joined: 26 Dec 2010 Posts: 16
|
(Separately) Posted: Tue Dec 28, 2010 19:07 Post subject: |
|
|
DeathStalker wrote: | Те же действия можно сделать вручную разместив в необходимых папках файлы desktop.ini
Например код в файле desktop.ini папки dropbox:
Code: | [.ShellClassInfo]
IconFile=C:\Documents and Settings\martinenko\Application Data\Dropbox\bin\Dropbox.exe
IconIndex=-1001
InfoTip=A securely backed up place to put your important files. |
|
Я этот метод обдумывал. Если правильно понимаю, он не должен тормозить систему так, как плагин FileMask.
Причем файл можно редактироваь не вручную, а менять иконку через свойства папки, этот файл автоматом подкорректируется. Но беда в том, что такой фокус не удается сделать массово над всеми выделенными папками. А по одной папке так менять, если их сотни - не дело.
Есть еще выход - с помощью TC скопировать нужным образом измененный файл Desktop.ini во все заданные папки, но я не разобрался как это сделать. Т.е. вопрос свелся к такому: как можно скопировать заданный в левой панели файл во все подкаталоги открытого в правой панели каталога? |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2227 Location: Москва, Россия
|
(Separately) Posted: Tue Dec 28, 2010 19:42 Post subject: |
|
|
Fulkabaster wrote: | Т.е. вопрос свелся к такому: как можно скопировать заданный в левой панели файл во все подкаталоги открытого в правой панели каталога? |
Указанный ранее скрит нужно запустить с параметрами:
Логика работы:
Во всех выделенных каталогах активной панели будет создан файл desktop.ini. При этом в качестве файла иконок будет использован текущий файл на пассивной панели. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
 |
Fulkabaster
Joined: 26 Dec 2010 Posts: 16
|
(Separately) Posted: Tue Dec 28, 2010 19:50 Post subject: |
|
|
Нет, а если вообще, имея ввиду более общую задачу? Наверняка TC позволяет своими средствами скопировать один и тот же файл сразу во множество каталогов? |
|
Back to top |
|
 |
Avada

Joined: 01 Aug 2008 Posts: 10420 Location: Россия, Саратов
|
(Separately) Posted: Tue Dec 28, 2010 20:09 Post subject: |
|
|
Fulkabaster
Позволяет. Стандартный функционал, введённый в TC 7.50 и улучшенный в 7.55 и 7.56. Поиск по форуму по словам Копировать во все выделенные, рекомендую задать показ результатов как сообщений. Или сразу сюда. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
 |
Andrey_A

Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Thu Dec 30, 2010 00:56 Post subject: |
|
|
Идея показалась интересной, написал скрипт, возможно решит проблему
Code: | '======================================================================
' Присвоение значков выделенным Папкам по содержимому
' Ассоциированные значкам папки и расширения считываются из файла
' Синаксис файла:
' Путь\к\значку{библиотека,номер}=;Папка1;Папка2;расширение1;расширение2;...
' d:\Картинки\Иконки\Архив.ico=;Архивы;Архив;7z;7zip;rar;
' %SystemRoot%\system32\shell32.dll,-236=;Музыка;mp3;wal;
' %COMMANDER_PATH%\Wcmicons.icl,1854=;Текст;Документы;doc;docx;txt;
' %WINDIR%\Wcmicons.dll,1457=;TC Image;Total Commander;
'======================== Параметры ===================================
' В параметрах вызова из TC должно быть прописанo 2параметра:
' {Cписок файлов} {путь\к\файлу_ассоциаций}
'======================== Примеры ===================================
' %L "%%COMMANDER_PATH%%\Scripts\AddIcons\IconsOnAssFolders.txt"
'
' Автор: Аверин Андрей (30.12.2010)
' Версия: 1.0
'======================================================================
Option Explicit
Dim FSO, WSH, List, ExtLine, Name, Ext, Files, i, k, FF, IC, NN
Set FSO = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count < 2 Then
MsgBox "Не хватает параметров!" & vbNewLine &_
"Должно быть минимум Два параметра!" & vbNewLine &_
"%L ""Путь\к\IconsOnAssFolers.txt""" & vbNewLine &_
"A у Вас прописан(о) " & WScript.Arguments.Count & " !!! " , vbOKOnly &_
vbCritical, "Присвоение значков Папкам по содержимому"
Wscript.Quit
End if
Set List = FSO.OpenTextFile(GetPath(WScript.Arguments(0)), 1)
ExtLine = Split(FSO.OpenTextFile(GetPath(WScript.Arguments(1)), 1).ReadAll, vbNewLine)
Do While Not List.AtEndOfStream
FF = GetPath(List.ReadLine)
if Len(FSO.GetExtensionName(FF)) = 0 Then
Name = FSO.GetBaseName(FF)
Ext = Split(";" & Name & ";" & ExtStr(FF), ";")
For i = 0 To Ubound(Ext)
For k = 0 To Ubound(ExtLine)
if InStr(1,UCase(Mid(ExtLine(k), Instr(ExtLine(k), "=") + 1, Len(ExtLine(k)))), ";" & UCase(Ext(i)) & ";") > 0 Then
If Right(FF, 1) <> "\" Then FF = FF & "\"
IC = GetPath(Mid(ExtLine(k), 1, Instr(ExtLine(k), "=") - 1))
if Instr(IC, ",") > 0 Then
IC = GetPath(Mid(ExtLine(k), 1, Instr(ExtLine(k), ",") - 1))
NN = Mid(ExtLine(k), Instr(ExtLine(k), ",") + 1, Instr(ExtLine(k), "=") - Instr(ExtLine(k), ",") - 1)
else
NN = "0"
end if
Desktop FF,IC, NN
i = Ubound(Ext)
k = Ubound(ExtLine)
end if
Next
Next
end if
Loop
List.Close
Set List = Nothing
Set FSO = Nothing
Wscript.Quit
Function GetPath(pPath)
GetPath = FSO.GetAbsolutePathName(CreateObject("WScript.Shell").ExpandEnvironmentStrings(pPath))
End Function
Function ExtStr(FFolder)
Dim Folder
Set Folder = FSO.GetFolder(FFolder)
For Each Files In Folder.Files
Ext = FSO.GetExtensionName(Files)
if Instr(UCase(ExtStr), UCase(Ext)) < 1 Then
ExtStr = ExtStr & Ext & ";"
end if
Next
End Function
Function Desktop(TargetDir,IconFile, Number)
Dim oFile, oDir, Attr, Des
Des = "Desktop.ini"
If FSO.FileExists(TargetDir & Des) Then FSO.DeleteFile (TargetDir & Des)
'Создаём Desktop.ini
If not FSO.FileExists(TargetDir & Des) Then
Set oFile = FSO.CreateTextFile(TargetDir & Des)
oFile.WriteLine "[.ShellClassInfo]"
oFile.WriteLine "IconFile=" & IconFile
oFile.WriteLine "IconIndex=" & Number
oFile.WriteLine "IconResource=" & IconFile & "," & Number
oFile.Close
' Установливаем для файла атрибутов "Скрытый", "Системный", "Архивный"
Attr = 38
Set oFile = FSO.GetFile(TargetDir & Des)
oFile.Attributes = oFile.Attributes or Attr
End If
' Установливаем для папки атрибут "Только чтение"
Attr = 1
Set oDir = FSO.GetFolder(TargetDir)
oDir.Attributes = oDir.Attributes or Attr
End Function |
Необходимо составить свой файл, где будут прописаны значки и ассоциированные им папки пример: Code: | d:\Картинки\Иконки\Архив.ico=;Архивы;Архив;7z;7zip;rar;
%SystemRoot%\system32\shell32.dll,-236=;Музыка;mp3;wal;
%COMMANDER_PATH%\Wcmicons.icl,1854=;Текст;Документы;doc;docx;txt;
%WINDIR%\Wcmicons.dll,1457=;TC Image;Total Commander;
D:\Картинки\Иконки\Vista My\Текст 004.ico,0=;Книги;djv;djvu;fb2;pdf; |
кнопка на панели тотала: Code: | TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\Scripts\AddIcons\IconsOnAssFolders.vbs"
%L "%%COMMANDER_PATH%%\Scripts\AddIcons\IconsOnAssFolders.txt"
C:\Windows\System32\WScript.exe
IconsOnAssFolers
-1
|
т.к. тестировал скрипт недолго, возможны недочёты, кто обнаружит сообщите |
|
Back to top |
|
 |
Tol!k

Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Thu Dec 30, 2010 02:28 Post subject: |
|
|
Code: | @echo off &chcp 1251 >nul
setlocal enableextensions
for /r %%d in (*.flac *.ape *.wv) do call :d "%%~dpd" 40
for /r %%d in (*.mp3 *.ogg *.wma *.aac *.m4a) do call :d "%%~dpd" 168
for /r %%d in (*.mid *.mod *.it) do call :d "%%~dpd" 116
for /r %%d in (*.djvu *.fb2 *.pdf) do call :d "%%~dpd" 114
for /r %%d in (*.jpg *.tif *.png) do call :d "%%~dpd" 117
goto :eof
:d
if exist "%~1Desktop.ini" goto :eof
echo [.ShellClassInfo]> "%~1Desktop.ini"
echo IconFile=%%SystemRoot%%\system32\shell32.dll>> "%~1Desktop.ini"
echo IconIndex=%2>> "%~1Desktop.ini"
attrib +h +s "%~1Desktop.ini"
attrib +r "%~1."
goto :eof
|
Простенько. Запустить в корневой папке. |
|
Back to top |
|
 |
Fulkabaster
Joined: 26 Dec 2010 Posts: 16
|
(Separately) Posted: Fri Dec 31, 2010 10:31 Post subject: |
|
|
Как запускать-то их? Мне больше как-то приходилось такие вещи в линухе делать %) |
|
Back to top |
|
 |
Tol!k

Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Fri Dec 31, 2010 12:37 Post subject: |
|
|
Как использовать Script-ы?
*Код, начинающийся с @echo off, сохранять с расширением .cmd
**Ещё встречаются скрипты AHK и AutoIt, но реже. |
|
Back to top |
|
 |
Fulkabaster
Joined: 26 Dec 2010 Posts: 16
|
(Separately) Posted: Fri Dec 31, 2010 14:02 Post subject: |
|
|
Спасибо. |
|
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
|