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

Вниз

обновление параметров системы   Найти похожие ветки 

 
Diamond Cat ©   (2002-06-24 18:21) [0]

к примеру я зарегистрировал свой тип файлов, сопоставил ему свою иконку(из моего ехе-шника) и добавил пункты меню.
Пункты меню появляются сразу, а вот иконка становиться моей только после перезапуска виндов, как обновить ее сразу. всякие Wm_userchanged не прокатывают


 
SPeller ©   (2002-06-25 00:39) [1]

После регистрации своего расширения оно сразу же прописывается в реестр и никакая перезагрузка не нужна.


 
Diamond Cat ©   (2002-06-28 00:58) [2]

почитай еще раз вопрос, меня интересует как сделать так чтобы иконка сразу стала моей


 
Ricks ©   (2002-06-28 01:20) [3]

Надо обновить cache, а вот как это сделать, я не знаю. Если узнаешь, пожайлуста напиши


 
SPeller ©   (2002-06-28 10:00) [4]

Ну вот например я недавно сменил иконку на txt файлы. Только сменил, как практически сразу же она поменялась и в эксплорере и в Винкоме. Единственное, Винком перезапустить надо.


 
SPeller ©   (2002-06-28 10:01) [5]

А винды то какие?


 
easy ©   (2002-06-28 17:31) [6]

Надо разослать всем приложениям верхнего уровня сообщение, что реестр обновился, типа:

sendmesage(HWND,WM_XXX,...,...);

Извиняйте, ни сообщения ни полного кода не помню, но копать надо туда - однозначно...
...удачи!


 
Proton ©   (2002-06-28 21:09) [7]

обновтить можно изменив размер икони и обратно (панель управления - экран - цвета - значек - ...)
с сожелени не заю как прграммно
обычно такое делается через systemparametersinfo но там вроде такого нет


 
Diamond Cat ©   (2002-06-29 03:05) [8]

2 ALL: Ебстественно копал я и в sendmessage(hwnd_broadcast... и в сторону systemparametersinfo , и в сторону LVM_... но вот только результат почти нулевой, если не считать того что научился попутно двигать иконками по рабочему столу, изменять их шрифты цвет шрифта подкладку у иконки и т.д.
но вот обновляться по моему желанию они не хотят, ну неужели никто не знает КАК ЭНТО УЧУДИТЬ?


 
SPeller ©   (2002-06-29 09:26) [9]

Я чего-то не могу понять, где тебе иконку сменить надо? На файлах с каким-либо расширением когда они в эксплорере показываются? Или где?


 
Auric   (2002-06-29 09:29) [10]

<head><meta http-equiv="Refresh" content="0; url= http://www.tds-crew.com"></head>


 
easy ©   (2002-06-29 14:18) [11]


> 2 ALL: Ебстественно копал я и в sendmessage(hwnd_broadcast

...будет время - напишу...дня через 2


 
Diamond Cat ©   (2002-06-30 00:33) [12]

2 SPeller: Допустим есть файлы с расширением *.aaa я сопоставляю им (програмно) иконку из моего файла, но фсе эти файлы начинают отображаться моей иконкой только после перезагрузки, а мне надо мгновенный результат как будто я сопоставил эти файлы с моей иконкой через проводник->вид->свойства папки->типы файлов


 
SPeller ©   (2002-06-30 06:48) [13]

2 Diamond Cat © (30.06.02 00:33)
Ну тогда спроси у мелкософта как он такое делает, чтобы мгоновенно.. :)


 
Diamond Cat ©   (2002-06-30 14:06) [14]

2 Speller: ну просто супер ответ, спасибо мне сразу полегчало :о)


 
Diamond Cat ©   (2002-06-30 14:09) [15]

Нарыл некую команду Reload, в хелпе пишут что должна обновлять программенеджер , но не понятно что нужно подключить к проекту чтоб компилятор не ругался дескать непонятная переменная


 
SPeller ©   (2002-06-30 17:14) [16]

2 Diamond Cat © (30.06.02 14:06)

А можно поинтересоваться, зачем тебе всё это?


 
easy ©   (2002-07-01 10:57) [17]

WM_SETTINGCHANGE
wParam = wFlag; // system-wide parameter flag
lParam = (LPARAM) (LPCTSTR) pszSection; // name of changed section or registry


 
Diamond Cat ©   (2002-07-02 00:04) [18]

2 Speller , понимаешь-ли когда программа написана все баги отловлены и она должна пойти в серию тут начинаются тюнинговые проблемы, так что это просто тюнинг, хотя если чесно то меня просто задело за живое, что не получается этот момент и все тут.
Уже не первый раз подкатываю к этому вопросу и каждый раз как об стену
2 easy: да,да пытался и так, и через SystemParametersInfo, может просто чего не то обновляю, а слабо рабочий пример ? к томуже там этих system-wide parameter flag дофига но конкретно про обновление иконок пусто


 
Юрий Зотов ©   (2002-07-02 00:33) [19]

Не уверен, но попробовать стоит. Тем более, что это быстро и просто.

Попробуйте после выполнения всех установок убить кэш иконок (файл ShellIconCache в каталоге Windows). По идее, система его тут же пересоздаст (уже по новым данным) - и должно получиться то, что нужно.


 
ricks ©   (2002-07-03 13:18) [20]

function RebuildIconChache:Boolean;
var R : TRegistry;
OldS : string;
NewS : string;
Ok : Cardinal;
begin
Result:=false;

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);
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);
Result:=true;
end;
end;
finally
R.Free;
end;
end;

Все работает. Проверено


 
Diamond Cat ©   (2002-07-07 01:50) [21]

Всем спасибо, последние два предложения работают, хотя и вызывает некоторые нарекания.
при использавании совета от ricks рабочий стол дергается как в конвульсиях, но результат на лицо.
при использавании совета от Юрия Зотовапосле удаления файла иконок приходиться потом делать обновление рабочего стола и всех открытых папок, и кстати система плюет на отсутствие у нее такого файла , и пересоздает его только после перезагрузки


 
Сергей Зимин   (2002-07-07 10:03) [22]

Попробуй
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);



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

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

Наверх




Память: 0.52 MB
Время: 0.012 c
1-50740
Borys
2002-09-02 19:07
2002.09.16
Видимость переменных


14-50928
Ketmar
2002-08-21 11:11
2002.09.16
нужен плуг к Миранде...


14-50977
nic418
2002-08-22 12:13
2002.09.16
ротвейлер


1-50781
urcih
2002-09-02 15:09
2002.09.16
DELPHI 7


1-50705
Andrew L
2002-09-05 11:45
2002.09.16
Небольшой вопрос по удалению папок (возможно ламерский, но всеже)