Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обновление иконок [D2, D3, Win95/98, WinME]


Unnamed ©   (2001-08-26 03:43:00) 

Господа программисты !
Столкнулся со следующей проблемой: я изменяю в реестре вид стандартных иконок (например для изменения стрелочки значка я пишу в раздел "HKLM\Software\Microsoft\Windows\CurrentVersion\explorer\Shell Icons" параметр с именем "29" и значением пути к новой иконке. Так вот собственно вопрос: как сделать так, чтобы эти изменения вступили в силу БЕЗ ПЕРЕЗАГРУЗКИ. Сразу оговорюсь нажатие F5 на десктопе иконки НЕ обнавляет. Также просьба не предлагать варианты из FAQ - они не срабатывают, я проверял.

p.s. Как-то это все же можно сделать, т.к. у меня есть утилитка TweakUI, писанная Microsoft"ом которая это с успехом делает.


Unnamed   (2001-09-28 01:48:00) [1]

Win 98/

НЕ РАБОТАЕТ !!!
А надо бы...


Andrey Klimov   (2001-09-24 22:36:00) [2]

Windows 2000/

SendMessage(FindWindow("Progman", "Program Manager"), WM_COMMAND, $A065, 0);

У меня работает, а у Вас?


Polevi   (2001-09-23 12:32:00) [3]

2Unnamed
Я прошу прощения - нет времени смотреть - есть этот способ в FAQ или нет
Попробуй

(Информация взята не помню откуда)

Можно использовать из приложения Дельфи с помощью следующей конструкции:
ShellExecute(Application.Handle,
Pchar("Open"),Pchar("C:\Windows\Rundll32.exe"),
Pchar(команда),
Pchar("C:\Windows"),SW_SHOWNORMAL);
где: команда - одна из перечисленных ниже

Например, выход из Windows без любых сообщений/вопросов:

ShellExecute(Application.Handle, Pchar("Open"),Pchar("C:\Windows\Rundll32.exe"), Pchar("krnl386.exe,exitkernel"), Pchar("C:\Windows"),SW_SHOWNORMAL);

"rundll32 user,repaintscreen" - Обновить рабочий стол


Григорий Ситнин   (2001-09-23 09:23:00) [4]

Неназванный: к сожалению, попродробней нельзя, так как книга, в которой была эта информация была подарена. попробуйте поискать на http://msdn.microsoft.com/library/


Unnamed   (2001-08-31 02:02:00) [5]

>Almaz
Работает, но Explorer перезагружать мне не подходит.

>Григорий Ситнин
А можно по подробнее, пожалуйста.

>Wizard_Ex
А как это сделать подскажите.


Wizard_Ex   (2001-08-30 14:13:00) [6]

Имею ввиду какчество отображения иконок . есть такая штука


Wizard_Ex   (2001-08-30 14:11:00) [7]

А по-моему нужно изменить битность с 16 на 24 или наоборот, только тогда обновится(без перезагрузки), к сожалению не знаю как это делать


Григорий Ситнин   (2001-08-29 10:11:00) [8]

К сожалению, не помню как конкретно, но точно помню, что надо послать сообщение, которое по-русски звучит, как "ОбновиКэшИконок"...


Almaz   (2001-08-29 00:47:00) [9]

>Доброжелатель
Да,... Вы свое имя оправдали полностью :)
>Виктор Щербаков
Не сработает. Я сталкивался с такой же проблемой.
>Unnamed
Во-первых, из каталога WINDOWS надо удалить файл ShellIconCache. Если этого не сделать, то даже перезагрузка не всегда поможет :)
Во-вторых придеться перегрузить Explorer. Т.е. сделать ему TerminateProcess, а затем запустить по новой. Это произойдет почти :) незаметно.

Удачи.
p.s. А насчет TweakUI - это отдельный вопрос и я к нему присоединяюсь. КАК ОНО ЭТО ДЕЛАЕТ БЕЗ ПЕРЕЗАГРУЗКИ EXPLORER ????


Виктор Щербаков   (2001-08-28 10:24:00) [10]

Попробуй WM_SETTINGCHANGE


Доброжелатель   (2001-08-28 10:22:00) [11]

Спасение утопающих - дело рук самих утопающих.


Unnamed   (2001-08-28 00:57:00) [12]

Помогите, пожалуйста !!!!!


Unnamed   (2001-08-26 23:46:00) [13]

Что, идей нет ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо