Что нового

Проблема с заменой иконки у папки

rolatipov

Новичок
Сообщения
25
Репутация
0
Нашел на форуме вот такой скрипт:
Код:
$sDir_Path = "C:\TestDir"
IniWrite($sDir_Path & "\Desktop.ini", ".ShellClassInfo", "IconFile", @ScriptDir & "\Icon.ico")
IniWrite($sDir_Path & "\Desktop.ini", ".ShellClassInfo", "IconIndex", 0)


который должен заменять иконку у папки.Но иконка не заменяется пока не зайдешь в свойства-настройки и не нажмешь OK(проверялось на Win7).Чем может быть вызвана данная проблема и как ее решить?
 
Автор
R

rolatipov

Новичок
Сообщения
25
Репутация
0
Кэш обновил(не помогло),а про атрибуты что-то несовсем понял


Добавлено:
Сообщение автоматически объединено:

Все решил,надо атрибут ставить "+s"(системная) и тогда работает.Только не знаю почему так.
 

SECTOR

Продвинутый
Сообщения
399
Репутация
59
Да потому что в этой папке лежит системный файл Desktop.ini
 

Pavel

Новичок
Сообщения
125
Репутация
3
Ребят, что-то не выходит по этой методике. Win2k3.
Выполняю:
Код:
IniWrite($systemdrv & $path & "\Desktop.ini", ".ShellClassInfo", "IconFile", "c:\Program Files (x86)\Users Control\icons\user.ico")
IniWrite($systemdrv & $path & "\Desktop.ini", ".ShellClassInfo", "IconIndex", 0)
FileSetAttrib($systemdrv & $path & "\Desktop.ini", "+SHA")

И нифига. Аналогичный файл (один в один с аттрибутами) создаётся при ручной смене иконки у папки... бред...

UPD. Разобрался! Помогла, как это не смешно - википедия :smile:
При этом папка, в которой находится desktop.ini, должна иметь атрибут только чтение...
 
Верх