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

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

Заставить винду перечитать параметры из реестра


Alexey Romanskiy ©   (2004-11-21 23:15:00) 

Я делаю некоторые изменения в реестре, возможно ли заставить винду перечитать некоторые или все параметры из реестра, без перезагрузки?


Piter   (2004-11-23 02:16:00) [1]

Alexey Romanskiy   (23.11.04 1:19) [18]
ПРавда в 9х не работает


ну так посмотри как в 9x называется окно регулятора и какой у него класс... но это, конечно, все полуспособы

но честно говоря я не раздуплил как это делать

ну если ты даже не слышал об этом - забей, задача очень не тривиальная...


Alexey Romanskiy   (2004-11-23 01:19:00) [2]


> Piter ©   (23.11.04 00:15) [17]

Да, предлагал, но честно говоря я не раздуплил как это делать. но вот этой строчкой можно отключить регулятор громкости
SendMessage(FindWindow(PChar('SystemTray_Main'),nil),WM_close,0,0);
, спасибо, GuAV.

ПРавда в 9х не работает. :( Мож кто знает почему? и как исправить.


Piter   (2004-11-23 00:15:00) [3]

Alexey Romanskiy   (22.11.04 21:03) [15]

я ж тебе уже предлагал, посылай броадкаст на восстановление иконки и перехватывай функцию Shell_NotifyIcon :)


GuAV   (2004-11-22 21:44:00) [4]

Полазил через SPY++. Значит процесс - SYSTRAY.EXE выводит не только этот индикатор, класс окна SystemTray_Main.
9х


Alexey Romanskiy   (2004-11-22 21:03:00) [5]


> GuAV ©   (22.11.04 20:54) [13]

> Так послать окну регулятора WM_QUIT или там WM_SYSCOMMAND
> С SC_CLOSE...

Идея хорошая, только как получить хэндл окна регулятора громкости?


Alexey Romanskiy   (2004-11-22 21:01:00) [6]


> Piter ©   (22.11.04 15:41) [12]

> ЗАЧЕМ ей это делать?

У меня есть программа, условно ее можно назвать "альтернативный регулятор громкости", мне необходимо сделать так, что бы при ее инсталяции стандартный регулятор заменялся моим, и при этом без перезагрузки. ДЛя этого изменяется, значение некоторого параметра в реестре, а затем необходимо, одно из двух
а) выгрузить значок самостоятельно
б) заставить программу перечитать содержимое реестра и выгрузить ее самостоятельно. (Хотя этот вариант менее вероятен)
Так или иначе для обоих вариантов нужен handle окна программы стандартного регулятора, который я никак не могу получить.


GuAV   (2004-11-22 20:54:00) [7]

Piter ©   (22.11.04 15:41) [12]
которая прячет регулятор громкости


Так послать окну регулятора WM_QUIT или там WM_SYSCOMMAND С SC_CLOSE...


Piter   (2004-11-22 15:41:00) [8]

Alexey Romanskiy   (22.11.04 2:02) [10]

или все таки тебе придется заняться перехватом WinApi функций, что несомненно поможет, но является трудоемкой задачей.

Правда, я по прежнему считаю, что это какая-то неправильная программа, которая прячет регулятор громкости. ЗАЧЕМ ей это делать?


Piter   (2004-11-22 14:45:00) [9]

Alexey Romanskiy   (22.11.04 1:49) [8]

попробуй найти DVM - он вроде писал замену Explorer'у - может что путного скажет насчет SysTray...


Alexey Romanskiy   (2004-11-22 02:02:00) [10]


> Игорь Шевченко ©   (22.11.04 01:53) [9]

> Для этого, по-видимому, необходим перезапуск Explorer

Это грубовато. И очень заметно. К тому же после перезапуска explorera часто не все иконки в трее восстанавливаются. ПРи таком раскладе, имхо, лучше перезагрузка.


Игорь Шевченко   (2004-11-22 01:53:00) [11]

Alexey Romanskiy   (22.11.04 01:49) [8]

Для этого, по-видимому, необходим перезапуск Explorer


Alexey Romanskiy   (2004-11-22 01:49:00) [12]


> Игорь Шевченко ©   (22.11.04 00:31) [5]
>
> Все нельзя, некоторые можно.

Необходимо считать следующий параметр:
HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Systray\Services


Alexey Romanskiy   (2004-11-22 01:44:00) [13]


> Piter ©   (22.11.04 00:45) [6]
> Alexey Romanskiy   (21.11.04 23:15)
>
> WM_SETTINGCHANGE помогло?


Нет :(


Piter   (2004-11-22 00:45:00) [14]

Alexey Romanskiy   (21.11.04 23:15)

WM_SETTINGCHANGE помогло?


Игорь Шевченко   (2004-11-22 00:31:00) [15]


> возможно ли заставить винду перечитать некоторые или все
> параметры из реестра, без перезагрузки


Все нельзя, некоторые можно.


GuAV   (2004-11-22 00:26:00) [16]

Alexey Romanskiy   (22.11.04 0:21) [3]
Какому handl-у посылать мессаг и с какими параметрами.


WM_SETTINGCHANGE + F1

SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);

Alexey Romanskiy   (22.11.04 0:21) [3]
не помогает.

Бывает. Не на всё действует.


Alexey Romanskiy   (2004-11-22 00:21:00) [17]


> Gero ©   (21.11.04 23:39) [1]
> Возможно.

Спасибо!


> GuAV ©   (21.11.04 23:41) [2]

Пробовал SendMessage($FFFFFFFF,WM_SETTINGCHANGE,0,0); - не помогает.
Как это делать правильно?
Какому handl-у посылать мессаг и с какими параметрами.


GuAV   (2004-11-21 23:41:00) [18]

WM_SETTINGCHANGE


Gero   (2004-11-21 23:39:00) [19]

Возможно.


Наверх

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