Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Изменить  реестр Windows, используя WinAPI [D5, Win2k]


Bond ©   (2002-08-16 13:04:00) 

Мастера, продвинутые в WinAPI - ПОМОГИТЕ!!!
Я изменяю пременные в реестре, используя класс TRegistry.
Но винда, хоть и изменяет их, но изменения вступают в силу после перезагрузки. Но если менять те же параметры, обычным путем (Например, настройки Desktop) , то изменения вступают в силу немедленно. Немного порывшись в WinAPI, вижу, что можно это сделать. Кто сталкивался, подскажите, как.

Заранее спасибо


Diamond Cat   (2002-08-18 00:28:00) [1]

А посмотреть по конфе уже и лень
sendmessage (hwnd_broadcast,WM_SETTINGCHANGE,0,integer(pchar("HKEY_CURRENT_USER"+"\"+"Control Panel"+"\"+"appearances")));
уведомляет все окна верхнего уровня что произошли изменения в ветке "HKEY_CURRENT_USER\Control Panel\appearances",
либо еще один вариант потереть кеш, система сама его востановит и разяснит всем приложением , что пора обновиться


Bond   (2002-08-16 18:34:00) [2]

2 Max2000

Расскажите поподробнее

2 Cobalt

Сейчас попробую, спасибо за совет


Max2000   (2002-08-16 16:19:00) [3]

Рассылаешь Message (SendMessage) всем и сообщаешь всем окнам, что ты изменил настройки реестра. Вот и все!!!!!


Cobalt   (2002-08-16 16:11:00) [4]

Вы наверное меняете настройки Проводника?
Потому что все изменения в реестре осуществляются сразу же или спустя непродолжительное время (параметр LazyWrite).

Проблема в том, что программы, читающие настройки из реестра, делают это, как правило, только при загрузке. Однако есть такое сообщение (его, видимо, надо разослать всем)
WM_SETTINGCHANGE
wParam = wFlag; // system-wide parameter flag
lParam = (LPARAM) (LPCTSTR) pszSection; // name of changed section or registry

На форуме видел недавно (вчера-позавчера), поищи.

С уважением.


Наверх

Титульная страница Поиск, карта сайта Написать письмо