Как заставить обновиться иконки на рабочем столе?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Как заставить обновиться иконки на рабочем столе?

Сообщение arthur2 » 06.02.2010 (Сб) 19:54

Есть файл link.url следующего содержания:
Код: Выделить всё
[InternetShortcut]
IconIndex=0
IconFile=myico.ico


Файл, естественно, отображается значком, взятым из myico.ico, лежащего рядом.

Я заменяю myico.ico на другую иконку с тем же именем. Как теперь заставить систему поменять значок и у link.url? А то значок меняется только после перезагрузки и ни какие F5 не помогают :(
Артур
 
   

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Как заставить обновиться иконки на рабочем столе?

Сообщение Antonariy » 08.02.2010 (Пн) 11:18

SHChangeNotify
Лучший способ понять что-то самому — объяснить это другому.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Как заставить обновиться иконки на рабочем столе?

Сообщение iGrok » 08.02.2010 (Пн) 14:08

А это разве не то же самое, что и F5 ?
Если не поможет - рыть в сторону обновления или перестройки Icon Cache.
label:
cli
jmp label

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Как заставить обновиться иконки на рабочем столе?

Сообщение Antonariy » 08.02.2010 (Пн) 14:25

Я так понимаю, шелл кэширует изображения иконок, чтобы не дергать каждый раз их источники, а F5 обновляет изображение окна, но не кэш.
arthur2, а если перезапустить процесс explorer.exe, иконка обновится?
Лучший способ понять что-то самому — объяснить это другому.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Как заставить обновиться иконки на рабочем столе?

Сообщение iGrok » 08.02.2010 (Пн) 15:03

Насколько я знаю, обновится.
Вопрос в том, как заставить систему обновить кэш без перезапуска explorer.exe.

Есть вот такой способ:
http://www.itags.org/msdn/2716672/
Но мне он почему-то не нравится. =)

Плюс есть вот такая тема:
http://www.autoitscript.com/forum/index ... opic=70433
label:
cli
jmp label

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как заставить обновиться иконки на рабочем столе?

Сообщение arthur2 » 08.02.2010 (Пн) 15:16

SHChangeNotify не помогло :(
Вызывал так:
Call SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, ByVal 0&, ByVal 0&)

После перезапуска эксплорера картинка обновляется, но это как-то чересчур жестоко :)

Нашел и удалил IconCache.db - это тоже почему-то не помогло :(
Артур
 
   

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Как заставить обновиться иконки на рабочем столе?

Сообщение iGrok » 08.02.2010 (Пн) 15:21

arthur2 писал(а):Нашел и удалил IconCache.db - это тоже почему-то не помогло :(

После удаления нужно всё равно перезапускать explorer.exe, так что про это можешь забыть. Это в принципе бесполезная операция. =)

Один из работающих, но ИМХО черезжопных способов в моём предыдущем посте.
А вот по второй ссылке есть упоминание вот этой функции:
http://msdn.microsoft.com/en-us/library/bb776418.aspx
Но что она делает несколько непонятно.
label:
cli
jmp label

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как заставить обновиться иконки на рабочем столе?

Сообщение arthur2 » 08.02.2010 (Пн) 20:35

Ага, черезжопистый способ :) Нашёл вроде как его же на бейсике:
http://forum.vingrad.ru/faq/topic-202977.html
Идея в том, чтобы поменять системный размер иконок, а потом вернуть как было.

iGrok писал(а):Но что она делает несколько непонятно.
Аналогично :)
Артур
 
   


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 15

    TopList