Форум: "WinAPI";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
ВнизЗаставить винду перечитать параметры из реестра Найти похожие ветки
← →
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 + F1SendMessage(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.
9х
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.036 c