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

Вниз

Заставить винду перечитать параметры из реестра   Найти похожие ветки 

 
Alexey Romanskiy   (2004-11-21 23:15) [0]

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


 
Gero ©   (2004-11-21 23:39) [1]

Возможно.


 
GuAV ©   (2004-11-21 23:41) [2]

WM_SETTINGCHANGE


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


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

Спасибо!


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

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


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

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]
не помогает.

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


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


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


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


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

Alexey Romanskiy   (21.11.04 23:15)

WM_SETTINGCHANGE помогло?


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


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


Нет :(


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


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

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


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

Alexey Romanskiy   (22.11.04 01:49) [8]

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


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


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

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

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


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

Alexey Romanskiy   (22.11.04 1:49) [8]

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


 
Piter ©   (2004-11-22 15:41) [12]

Alexey Romanskiy   (22.11.04 2:02) [10]

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

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


 
GuAV ©   (2004-11-22 20:54) [13]

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


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


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


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

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

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


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


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

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

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


 
GuAV ©   (2004-11-22 21:44) [16]

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


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

Alexey Romanskiy   (22.11.04 21:03) [15]

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


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


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

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

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


 
Piter ©   (2004-11-23 02:16) [19]

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


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

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

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



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

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

Наверх




Память: 0.51 MB
Время: 0.045 c
3-1102596992
galexis
2004-12-09 15:56
2005.01.09
Сколько записей в DBGrid?


4-1100954329
kaZaNoVa
2004-11-20 15:38
2005.01.09
NTFS - Процесс без файла - глюк или фантастика ?


1-1103801736
Кирилл
2004-12-23 14:35
2005.01.09
Конвертация


3-1102531028
Sergilov
2004-12-08 21:37
2005.01.09
Помогите создать новый Access файл.


4-1101128855
Новик
2004-11-22 16:07
2005.01.09
Выделить часть текста в чужом окне