Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по реестру   Найти похожие ветки 

 
Крутов Алексей   (2002-04-16 10:38) [0]

Уважаемые мастера !
Помогите пожалуйста разобраться с реестром.
Так, например, в программе Tweak UI есть возможность включения/отключения анимации СomboBox"ов.
С помощью RegMonitora установлено, что для этого необходимо
менять первый байт двоичных данных по адресу
HKEY_CURRENT_USER\Control Panel\Desktop\UserPreferencesMask
со значения 9A на 9E. Однако если это делать через редакторы
реестров (RegEdit, RegEdt32), либо через программу, то изменения
встурают в силу только после перезагрузки, в то время как Tweak UI перезагрузка не требуется.
Полазил в FAQ"е, нашел слова по поводу WM_SETTINGCHANGE, однако
не помогло. Вот как я ее вызывал:

var s:PChar;
...
Запись в реестр
s:=PChar("HKEY_CURRENT_USER\Control Panel\Desktop"), либо
s:=PChar("HKEY_CURRENT_USER");
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,integer(s));

Скажите пожалуйста, что такого делает TweakUI и какие сообщения
оно посылает для применения данного параметра без перезагрузки

С уважением Крутов Алексей


 
Крутов Алексей   (2002-04-17 12:33) [1]

За день поисков нашел пару функций, но положительного результата это не принесло. Поэтому прошу советов по направлению дальнейшего поиска. Привожу код.
На форме лежит CheckBox, через который устанавливается нужный режим анимация/быстрое выпадение и ComboBox, с помощью которого проверяется текущее состояние. По нажатию на кнопку производится запись в реестр.

procedure TForm1.Button1Click(Sender: TObject);
var Reg:TRegistry;
Buffer:array[1..4] of byte;
begin
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
if Reg.OpenKey("Control Panel\Desktop",false) then
begin
Reg.ReadBinaryData("UserPreferencesMask",Buffer,4);
if CheckBox1.Checked then Buffer[1]:=154 else Buffer[1]:=158;
Reg.WriteBinaryData("UserPreferencesMask",Buffer,4);
Reg.CloseKey;
Reg.Free;

// Тщетные попытки обновления параметров системы
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,
LongInt(PChar("HKEY_CURRENT_USER")));

// Еще одна попытка
SystemParametersInfo(SPI_SETANIMATION, 0, Nil,
SPIF_UPDATEINIFILE);

ShowMessage("Изменения сохранены");
end;
end;

Пробовал также перезапускать explorer.exe, однако параметр UserPreferencesMask вступает у меня в силу только после перезагрузки, хотя, как я уже говорил, Tweak UI умеет его применять без нее.
Отзовитесь, знающие люди, помогите советом что еще попробовать.

С уважением Крутов Алексей



 
Семеныч   (2002-04-18 11:05) [2]

А зачем тебе вообще это надо ?
Тебе что, перезагрузиться в лом ?



 
Крутов Алексей   (2002-04-18 11:18) [3]

Хоть кто-то откликнулся на мой вопрос, а то сижу как в танке :-)

To Семеныч>

Нет, перегрузиться мне конечно не в лом. Весь интерес заключается в том, чтобы понять механизм обновления системных
настроек реестра после его обновления.

С уважением Крутов Алексей


 
Donal_Graeme   (2002-04-18 12:44) [4]

а так пробовал?

SystemParametersInfo(SPI_SETANIMATION, 0, Nil, SPIF_SENDCHANGE);


 
Крутов Алексей   (2002-04-18 13:09) [5]

To Donal_Graeme>

Пробовал, реакции никакой :-(


 
Donal_Graeme   (2002-04-18 17:24) [6]

я тут глянул, у меня есть программка, которая изменяет обои. так вот обновление у меня делалось так :

SystemParametersInfo (SPI_SetDeskWallPaper, 0, @WP,
SPIF_SendWinIniChange + SPIF_UpdateIniFile);
InvalidateRect (0, nil, True);

и всё работает.



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

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

Наверх




Память: 0.46 MB
Время: 0.011 c
3-47157
Hermit
2002-06-18 17:03
2002.07.15
SET EXPLAIN ON


14-47701
Windeus
2002-06-18 00:43
2002.07.15
Warning и...


1-47333
Ricks
2002-06-30 18:57
2002.07.15
Ресурсы: 32-битный Bitmap


14-47678
Bocman
2002-06-17 10:43
2002.07.15
Глюк


14-47778
lipskiy
2002-06-13 22:55
2002.07.15
Можно ли автоматически засунуть функцию и ее окружение в dll?





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