Необходим скрипт для смены значка папки одним кликом

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Ответить
Аватара пользователя
Andrey_A
Сообщения: 394
Зарегистрирован: Пт апр 10, 2009 06:28
Откуда: Сочи
Контактная информация:

Необходим скрипт для смены значка папки одним кликом

Сообщение Andrey_A »

Уважаемые СКРИПТОТОТАЛЬЩИКИ подскажите выход из такой ситуации.
Задача: В ТЕКУЩЕЙ ПАНЕЛИ НЕОБХОДИМО КАЖДОЙ ВЫДЕЛЕННОЙ ПАПКЕ
В ОТДЕЛЬНОСТИ ПРИКРЕПИТЬ ИНДИВИДУАЛЬНЫЙ ЗНАЧОК, НАХОДЯЩИЙСЯ
КАЖДЫЙ В СВОЕЙ ПАПКЕ (значок exe или ico файла).
Виртуальный пример: есть папка программы PROG,
в ней соответственно есть запускающий PROGGO.EXE ,
мне нужно, чтобы папка PROG светилась значком PROGGO.EXE,
таких папок как описано выше немало, а вручную всё это делать надоело

Вручную, кто не знает, приходится делать много телодвижений:
1. Выделить полный путь к PROGGO.EXE,
2. Выйти в родительский коталог (т.е поставить курсор на папку PROG)
3. Нажать правой кнопкой мыши
4. Вызвать команду"Свойство"
5. Переключиться в "Настройка"
6. Нажать "Сменить значок"
7. Ввести скопированный путь к PROGGO.EXE
8,9,10 Несколько раз нажать на OK, а если таких папок 100...

Кто-то может спросить: А какая ЦЕЛЬ:
1 Эстетическая - если на папке значок - это ускоряет визуальный поиск
2.Мне приходится "сканировать" много папок...тысячи...с разными данными,
чтобы знать в какую папку мне больше заходить не надо (т.е уже просмотренную)
лучшим для себя методом я нашёл следующее:
во все папки предварительно копируется файл нужного значка.ico
и при окончании работы с папкой я её помечаю - вешая на неё значок...
И красиво, и понятно, и виден наглядный итог работы.
В конце дня накапливается много готовых папок - вот бы одной кнопкой,
одним кликом повесить все иконки на эти папки
...много текста, извините, наболело! С уважением Андрей А А

[mod="CaptainFlint"]Нарушение п. 9 правил. Со скриптами в "Автоматизацию".[/mod]
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Вообще-то, написать скрипт можно. Если я правильно помню, при выполнении указанных действий в директории появляется файл desktop.ini с путем к иконке. То есть скрипт будет писать и копировать такие файлы. Это несложно. Однако:
1) Попробуй поиграться с комментариями. Например, создаешь цветовую схему "Если комментарий к директории содержит слово "читал", она красится зеленым". А для одноврменного комментирования многих директорий можно использовать мой скрипт.
2) Того же результат можно добиться, изменяя атрибуты директории, скажем "Архивный". Директории с разными атрибутами можно красить по разному.
3) Посмотри сюда - вдруг поможет?
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
mrmerak
Сообщения: 441
Зарегистрирован: Пн авг 20, 2007 03:48

Re: Необходим скрипт для смены значка папки одним кликом

Сообщение mrmerak »

Andrey_A писал(а):В ТЕКУЩЕЙ ПАНЕЛИ НЕОБХОДИМО КАЖДОЙ ВЫДЕЛЕННОЙ ПАПКЕ
В ОТДЕЛЬНОСТИ ПРИКРЕПИТЬ ИНДИВИДУАЛЬНЫЙ ЗНАЧОК, НАХОДЯЩИЙСЯ
КАЖДЫЙ В СВОЕЙ ПАПКЕ (значок exe или ico файла).
+1
Тоже надо.
TC 9.51 | Win10 1903
DrShark
Сообщения: 911
Зарегистрирован: Сб окт 21, 2006 20:27
Откуда: Kyiv, Ukraine
Контактная информация:

Сообщение DrShark »

Простой скрипт, который присваивает иконку файла под курсором папке в противоположной панели.
Кнопка, подобная этой:

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

TOTALCMD#BAR#DATA
"D:\Program Files\totalcmd\Utils\TargetLNK\TargetICON.vbs"
"%T" ""%P%N""
D:\WINDOWS\System32\WScript.exe
TargetICON
D:\Program Files\totalcmd\Utils\TargetLNK\

-1
Собственно, скрипт:

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

Dim Args, WSHShell, fso, f

Set Args = WScript.Arguments
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")

Set f = fso.GetFolder(Args(0))
f.Attributes = f.Attributes Or 1

Set f = fso.OpenTextFile(Args(0) + "\Desktop.ini", 2, True)
 f.Write "[.ShellClassInfo]" + vbCrLf
 f.Write "IconFile=" & Args(1) + vbCrLf
 f.Write "IconIndex=0"  + vbCrLf
f.Close

Set f = fso.GetFile(Args(0) + "\desktop.ini")
f.Attributes = f.Attributes Or 2
f.Attributes = f.Attributes Or 4
Уже меньше кликов :)
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Тема обсуждалась - Свои иконки у папок. Там же приведены скрипты, а также различное ПО для использования по теме.
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Andrey_A
Сообщения: 394
Зарегистрирован: Пт апр 10, 2009 06:28
Откуда: Сочи
Контактная информация:

Групповое назначение папкам значков

Сообщение Andrey_A »

Спасибо за подсказку ввиде скрипта, но к сожалению это не решает
вопрос группового назначения иконок группе папок. Я не думаю, что очень трудно дописать работающий скрипт, где
1. Есть вхождение в папку
2. Поиск в папке ico или exe файла
3. Запоминание адреса в буфер найденного
4. Выход обратно на родительскую папку
5. Назначение ей значка
6. Переход к следующей папке
7. И цикл повторяется
Я последовательность понимаю, но скрипты писать ещё не научился
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Andrey_A писал(а):2. Поиск в папке ico или exe файла
По какому принципу автоматизировать этот пункт?
Я не умею искать иконки. Единственный вариант - тупо брать первый попавшийся exe-шник. Так устроит?
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Andrey_A
Сообщения: 394
Зарегистрирован: Пт апр 10, 2009 06:28
Откуда: Сочи
Контактная информация:

Групповое присвоение значков

Сообщение Andrey_A »

Первый попавшийся Exeшник в самый раз!
Заранее спасибо за помощь
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Re: Групповое присвоение значков

Сообщение Tol!k »

Andrey_A писал(а):Первый попавшийся Exeшник в самый раз!
Если не найден Exeшник с именем, похожим на имя папки; и Первый попавшийся — не unins*.exe и не unwise.exe
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Tol!k писал(а):Если не найден Exeшник с именем, похожим на имя папки; и Первый попавшийся — не unins*.exe и не unwise.exe
ОК.
Сделал в указанной выше теме - Свои иконки у папок.
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Чиполлино
Сообщения: 62
Зарегистрирован: Пт дек 22, 2017 23:44
Откуда: Орёл

Сообщение Чиполлино »

Возможно ли изменить значок одновременно у нескольких папок, на дин из значков из %SystemRoot%\System32\SHELL32.dll?.
Ответить