Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

Изменения в реестре без перезагрузки системы   Найти похожие ветки 

 
Cure   (2003-11-26 20:36) [0]

Моя прога вносит изменения в реестр. Как привести их в действие, не перегружая машину? Пробовал SendMessage и т.д - не работает. Потом посоветовали SystemParametersInfo()... оно-то хорошо, только не знаю я, что в скобочках писать надо... Помогите, чем можете. Заранее спасибо.


 
miek ©   (2003-11-26 22:03) [1]

Обычные изменения, вообще говоря, сразу "в действие приводятся". На то они и изменения. Или ты пытаешься динамические разделы править?


 
Dimman1 ©   (2003-11-26 22:14) [2]

а какие измения конкретно?


 
Talla2k ©   (2003-11-27 00:24) [3]

to Dimman1!!!
Вот яркий пример: установили новое расширение файла в системе,а
иконки этих файлов появляются только после перегрузки!!!Хотя в реестре все было и до перегрузки!!!


 
Игорь Шевченко ©   (2003-11-27 00:32) [4]

Talla2k © (27.11.03 00:24)

Точнее, после перезапуска оболочки, так как она кеширует иконки для типов файлов.


 
Talla2k ©   (2003-11-27 14:47) [5]

to Игорь Шевченко
Ну да!!!А вот как увидеть сразу???


 
Diamond Cat ©   (2003-11-27 23:41) [6]

можно рехнуть кеш иконок , блин забыл как этот файлик называется, но изменения произойдут только когда системе надо будет сверится с кешом, не найдя его она прочешет реестр и перерисует иконки (это так ради прикола) , а вот реальные способы
Номер один , не правильный но иконки обновляет, наткнулся на него случайно поверено только под 98
R:=TRegistry.Create;
try
R.RootKey:=HKEY_CURRENT_USER;
if R.OpenKey("Control Panel\Desktop\WindowMetrics", false) then begin
OldS:=R.ReadString("Shell Icon size");
if OldS <> "" then begin
NewS:=IntToStr(StrToInt(OldS)-1);
showmessage(news);
R.WriteString("Shell Icon size", NewS);
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, 0, SMTO_ABORTIFHUNG, 10000, Ok);
R.WriteString("Shell Icon size", OldS);
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, 0, SMTO_ABORTIFHUNG, 10000, Ok);
end;
end;
finally
R.Free;
end;
и номер два правильный (насколько я могу судить)
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);



Страницы: 1 вся ветка

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
3-16152
AGN
2004-01-14 13:28
2004.02.06
БД + File


14-16731
Nikolai_S
2004-01-16 10:07
2004.02.06
Создание автоматического обновления (патча)


1-16257
Urri
2004-01-26 12:54
2004.02.06
Загрузить иконку формы из ресурса


1-16457
Piero
2004-01-27 23:25
2004.02.06
Кодировка в Install Shield


6-16555
начинающий1
2003-12-03 09:44
2004.02.06
Как заполнить web форму?