Manche Änderungen werden vom System nicht sofort übernommen, mit SendMessageTimeOut funktioniert das meistens doch...
Private Declare Function SendMessageTimeout Lib "user32" _
Alias "SendMessageTimeoutA" (ByVal hwnd As Long, _
ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, _
ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) _
As Long
Private Declare Sub Sleep Lib "kernel32" _
(ByVal dwMilliseconds As Long)
Private Const WM_SETTINGCHANGE = &H1A
Private Const SMTO_ABORTIFHUNG = &H2
Private Const HWND_BROADCAST = &HFFFF&
Private Sub Ändern()
Dim nResult As Long
' Hier kommt der Code hin, zB Änderungen in der Registry.
' .......
SendMessageTimeout HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0, _
SMTO_ABORTIFHUNG, 3, nResult
'Zeit zum Ändern... kann individuell angepasst werden
Sleep 1000
End Sub