I have a WPF C# project in which I\'m implementing settings for Windows folder options. One of them is \"Single-click to open an item\" (instead of double-click). When I cha
If you would have posted the code to change that setting, I would have tested it against the following suggestions before replying.
Have you tried:
1) Removing the statement if (itemName == "Windows Explorer")
from the above code, so it refreshes every window (including the desktop)?
2) Broadcasting a WM_SETTINGCHANGE via SendMessage WIN32 API?
private const int HWND_BROADCAST = 0xffff;
private const int WM_WININICHANGE = 0x001a, WM_SETTINGCHANGE = 0x001a, INI_INTL = 1;
[DllImport("user32.dll")]
private static extern int SendMessage(int hWnd, uint wMsg, uint wParam, uint lParam);
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, INI_INTL);
[Credit]
3) IActiveDesktop.ApplyChanges
[ComImport]
[Guid("F490EB00-1240-11D1-9888-006097DEACF9")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IActiveDesktop
{
[PreserveSig]
int ApplyChanges(AD_Apply dwFlags);
// [...]
// Note: There is a lot more to this interface,
// please see PInvoke.net link below.
}
private const int AD_APPLY_REFRESH = 4;
IActiveDesktop.ApplyChanges(AD_APPLY_REFRESH);
[PInvoke.net - IActiveDesktop]
If these do not work, let me know. If it comes down to it, it is possible to save all the open explorer windows & their positions, terminate explorer, wait for explorer to restart, re-open each explorer window and re-position them... if that would acceptable.
Hope this helps.