Emulating the "APPLY" button within the Appearance options "Refresh the new settings"
Hi Guys,
I'm needing some help with this one. I've got a copy of the HKCU\Control Panel hive and need to apply this to the registry and then "apply" the changes. The problem lies with "refreshing" the registry so that the changes apply.
Here's an example:
1. Open Regedit and change the following key = HKCU\Control Panel\Colors\Background to 0 0 0 (black, or any choice of color!) and close regedit.
2. To apply the changes, a user needs to log off and then back in. This is no good.
I've tried running TSKILL explorer.exe but this does not help either..
Any help would be great.
Re: Apply changes to HKCU\Control Panel and "Refresh the new settings"
You're not trying to break through Windows architecture, are you? ;)
Anyway, what "Background" are you changing?
Re: Apply changes to HKCU\Control Panel and "Refresh the new settings"
Hey,
When a user changes their appearance settings (background color, etc) and selects Apply. This does the registry changes needed and then does a "Refresh" and the screen has all the correct settings applied. I'm trying to find out how to do this.
Re: Apply changes to HKCU\Control Panel and "Refresh the new settings"
Hmmm... Ever consider API path?
VB Code:
Private Declare Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
Private Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long
Const COLOR_SCROLLBAR = 0 'The Scrollbar colour
Const COLOR_BACKGROUND = 1 'Colour of the background with no wallpaper
Const COLOR_ACTIVECAPTION = 2 'Caption of Active Window
Const COLOR_INACTIVECAPTION = 3 'Caption of Inactive window
Const COLOR_MENU = 4 'Menu
Const COLOR_WINDOW = 5 'Windows background
Const COLOR_WINDOWFRAME = 6 'Window frame
Const COLOR_MENUTEXT = 7 'Window Text
Const COLOR_WINDOWTEXT = 8 '3D dark shadow (Win95)
Const COLOR_CAPTIONTEXT = 9 'Text in window caption
Const COLOR_ACTIVEBORDER = 10 'Border of active window
Const COLOR_INACTIVEBORDER = 11 'Border of inactive window
Const COLOR_APPWORKSPACE = 12 'Background of MDI desktop
Const COLOR_HIGHLIGHT = 13 'Selected item background
Const COLOR_HIGHLIGHTTEXT = 14 'Selected menu item
Const COLOR_BTNFACE = 15 'Button
Const COLOR_BTNSHADOW = 16 '3D shading of button
Const COLOR_GRAYTEXT = 17 'Grey text, of zero if dithering is used.
Const COLOR_BTNTEXT = 18 'Button text
Const COLOR_INACTIVECAPTIONTEXT = 19 'Text of inactive window
Const COLOR_BTNHIGHLIGHT = 20 '3D highlight of button
Const COLOR_2NDACTIVECAPTION = 27 'Win98 only: 2nd active window color
Const COLOR_2NDINACTIVECAPTION = 28 'Win98 only: 2nd inactive window color
Private Sub Command1_Click()
'KPD-Team 1998
'URL: [url]http://www.allapi.net/[/url]
'Get the caption's active color
col& = GetSysColor(COLOR_ACTIVECAPTION)
'Change the active caption's color to red
t& = SetSysColors(1, COLOR_ACTIVECAPTION, RGB(255, 0, 0))
MsgBox "The old title bar color was" + Str$(col&) + " and is now" + Str$(GetSysColor(COLOR_ACTIVECAPTION))
End Sub
Re: Apply changes to HKCU\Control Panel and "Refresh the new settings"
I've managed to do what I wanted but I'm not too sure if it's the correct way.
I change the background value from HKCU\Control Panel\Colors - read the value from the key and then set if using the posting above.
I want to know if I can use the same class/method or API call that the "APPLY" button uses under Appearance?
Or
When selecting the "APPLY" button does it write all the registry keys dynamically?
Any thoughts?
Re: Apply changes to HKCU\Control Panel and "Refresh the new settings"
Quote:
Originally Posted by Chrispybee
...I want to know if I can use the same class/method or API call that the "APPLY" button uses under Appearance?
Or
When selecting the "APPLY" button does it write all the registry keys dynamically?
Any thoughts?
Not sure what you mean... :confused:
Re: Emulating the "APPLY" button within the Appearance options "Refresh the new settings"
in windows, some settings need requires the computer to be restarted in order for it to SAFELY take effect. this is normal with every platform because if a setting is already in use and you are going to change it, the operating system needs to reload it to memory and reloading requires the unloading of the previous one.
so for the sake of safe operation, i suggest you follow the way the operating system operates
Re: Emulating the "APPLY" button within the Appearance options "Refresh the new settings"
What I mean is the following...
1. Right click on the Desktop and select Properties.
2. Select the Appearance tab and change the color of the desktop.
3. Select the APPLY button the following registry key should be changed and applied.
* This will or should change the "HKCU\Control Panel\Colors" Background value.
My question is fairly simple. If you use WinSpector and monitor the RUNDLL32.EXE a class is called but is hidden by the OS. Does anyone have any information on such a class or function within the USER32.DLL which I could use to read and apply all registry settings dynamically. Windows does it so it should be done??
Re: Emulating the "APPLY" button within the Appearance options "Refresh the new settings"
Can anyone help on this?
Please, I need to know if this can be done?