![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обновление иконок [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]Что, идей нет ?