Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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 + 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.036 c
3-1102486661
Владимир С.
2004-12-08 09:17
2005.01.09
возможно ли составить запрос?


1-1103646634
Der Juvas
2004-12-21 19:30
2005.01.09
Получения с помощью компонента HTML кода страницы


1-1103715240
12345
2004-12-22 14:34
2005.01.09
программная реализация передаточной функции


1-1103805041
Grizly
2004-12-23 15:30
2005.01.09
Pointer на Record... Как вытащить данные?


6-1098093599
Zelius
2004-10-18 13:59
2005.01.09
Проблемы с TidHttpserver.MaxConnections в Indy 9





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский