Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.013 c
14-50940
VictorT
2002-08-21 13:05
2002.09.16
Описание функции gethostbyaddr


4-51036
SPeller
2002-07-20 14:14
2002.09.16
Подправить UpDown


7-51001
Gogos
2002-07-07 11:53
2002.09.16
Как можно изменить текст «Приветствие» при старте Win XP?


14-50926
Sock
2002-08-20 19:35
2002.09.16
?


1-50822
maxim2
2002-09-04 06:07
2002.09.16
И еще вопросик как узнать на какой строке находится курсор в Rich





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский