Форум: "WinAPI";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
ВнизИзменения в реестре без перезагрузки системы Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.028 c