Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
24 / 24 / 8
Регистрация: 01.10.2012
Сообщений: 204
1

Как изменить иконку папки

13.05.2015, 16:16. Просмотров 1424. Ответов 6
Метки нет (Все метки)

Всем привет.
Если зайти в папку "C:\Program Files" то там можно увидеть множество папок. Все они практически обычные, кроме папки "Skype". Она необычная, она особенная. Особенность данной папки в том, что у этой папки есть своя иконка.
Если включить отображение скрытых файлов и папок, то можно в папке "C:\Program Files\Skype" увидеть файл "desktop.ini", если открыть его в блокноте, то там мы обнаруживаем следующие текст.

[.ShellClassInfo]
IconIndex=-910
IconFile=C:\Program Files\Skype\Phone\Skype.exe

то есть в этой папке указан значок по конкретному адресу.

Можно вручную так же создавать свои папки с иконками, либо редактировать уже существующие. Это очень удобно для нахождения нужной папки.

Возникает вопрос. Как сделать так, чтобы при установке программы, которую написал, создавалась папка с иконкой?

Если создать папку руками, потом теми же руками создать в этой папке файл "desktop.ini", и открыв его прописать там

[.ShellClassInfo]
IconFile=%SystemRoot%\system32\SHELL32.dll
IconIndex=130

то ничего не произойдёт.

Но если создать папку, и нажав правой кнопкой мыши на неё зайти в свойства. И в настройках сменить значок на какой нибудь и нажать на ок, то папка поменяет иконку.
Может что нибудь с реестром надо делать?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2015, 16:16
Ответы с готовыми решениями:

Как программно изменить иконку в NotifyIcon?
Подскажите пожалуйста как программно изменить иконку в NotifyIcon программы свернутой в трей.

Изменить иконку системной папки
Добрый день! Можно ли в PS поменять в проводнике иконку папки Загрузки на иконку Мои документы?

Как получить иконку из файла или из папки?
Здравствуйте! Хочу сделать что-то типа проводника с использованием TreeView, только проблема в том,...

Как изменить иконку в трее
Как изменить иконку в треи после? делаю так ложу иконки в папку ресурсов пытаюсь изменить...

6
Почетный модератор
21184 / 8918 / 1080
Регистрация: 11.04.2010
Сообщений: 11,014
13.05.2015, 16:52 2
Цитата Сообщение от SeregaBarmaley Посмотреть сообщение
то ничего не произойдёт.
Потому, что это не все, что нужно сделать.
Как минимум для папки нужно задать атрибут "Системный" или "Только для чтения"
На XP работает любой из атрибутов. За старшие версии Windows не скажу - пробуйте
0
24 / 24 / 8
Регистрация: 01.10.2012
Сообщений: 204
13.05.2015, 17:01  [ТС] 3
У меня не работает

Добавлено через 2 минуты
Если я создаю руками папку, и помещаю туда файл Desktop.ini с прописанными параметрами, ничего не произходит. А если я создаю теми же руками папку и задаю в свойствах этой папки иконку, то у папки появляется иконка. Если в эту папку зайти, то там будет файл Desktop.ini с теми же параметрами.
Вопрос: почему если переместить в папке системный файл ничего не произходит, а если руками изменить свойства папки то иконка появляется?
0
Почетный модератор
21184 / 8918 / 1080
Регистрация: 11.04.2010
Сообщений: 11,014
13.05.2015, 17:10 4
SeregaBarmaley, перечитайте еще раз мой пост, что выше.
0
24 / 24 / 8
Регистрация: 01.10.2012
Сообщений: 204
13.05.2015, 18:39  [ТС] 5
Атрибут "только для чтения" у папки стоит. Папка не меняет иконку.

Добавлено через 5 минут
Ладно суть не в этом. Я просто хотел чтобы было более наглядно. Суть в другом. Как программно поменять иконку на папке?
Как программа Skype после установки создаёт программно в директории "C:\Program Files" папку Skype с изменённой иконкой папки?

Добавлено через 1 час 19 минут
Я к сожалению не знаю как программно у папки поменять её иконку
0
Почетный модератор
21184 / 8918 / 1080
Регистрация: 11.04.2010
Сообщений: 11,014
13.05.2015, 18:42 6
Лучший ответ Сообщение было отмечено SeregaBarmaley как решение

Решение

SeregaBarmaley, код не обкатывался.
vb.net
1
2
3
4
        Dim Di As New IO.DirectoryInfo("C:\Folder")
        Di.Attributes = IO.FileAttributes.ReadOnly
        'Or
        Di.Attributes = IO.FileAttributes.System
Попробуйте либо вторую строку, либо третью, либо обе разом.
На момент работы кода, в папке уже должен быть файл Desktop.ini
1
24 / 24 / 8
Регистрация: 01.10.2012
Сообщений: 204
13.05.2015, 19:43  [ТС] 7
Работает!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2015, 19:43

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как изменить иконку формы?
Кстати, иконка отбражается в панели заголовка (если программно) 16-ти цветная. :(( Хотя сама она...

Как изменить иконку на папке?
У меня на папке C D E Одинаковые иконки а на F. изменил случайно.. как сделать одинаковую с теми...

Как изменить стандартную иконку MessageBox?
Как изменить стандартную иконку MessageBox? По стандарту там белый крестик в красном круге. Можно...

Как изменить иконку и название приложения
Не могу понят как изменить иконку в MFC какое сообшение надо обработать? и посдкажите как это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.