mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2024-11-14 22:55:52 -06:00
add ep refresh for dark mode toggle (#2732)
This commit is contained in:
parent
06baebc60b
commit
1ee7274bdb
@ -21,6 +21,7 @@ Function Invoke-WinUtilDarkMode {
|
|||||||
$Path = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
|
$Path = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
|
||||||
Set-ItemProperty -Path $Path -Name AppsUseLightTheme -Value $DarkMoveValue
|
Set-ItemProperty -Path $Path -Name AppsUseLightTheme -Value $DarkMoveValue
|
||||||
Set-ItemProperty -Path $Path -Name SystemUsesLightTheme -Value $DarkMoveValue
|
Set-ItemProperty -Path $Path -Name SystemUsesLightTheme -Value $DarkMoveValue
|
||||||
|
Invoke-WinUtilExplorerRefresh
|
||||||
} catch [System.Security.SecurityException] {
|
} catch [System.Security.SecurityException] {
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
} catch [System.Management.Automation.ItemNotFoundException] {
|
||||||
|
33
functions/private/Invoke-WinUtilExplorerRefresh.ps1
Normal file
33
functions/private/Invoke-WinUtilExplorerRefresh.ps1
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
function Invoke-WinUtilExplorerRefresh {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Refreshes the Windows Explorer
|
||||||
|
#>
|
||||||
|
|
||||||
|
Invoke-WPFRunspace -DebugPreference $DebugPreference -ScriptBlock {
|
||||||
|
# Send the WM_SETTINGCHANGE message to all windows
|
||||||
|
Add-Type -TypeDefinition @"
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
public class Win32 {
|
||||||
|
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
|
||||||
|
public static extern IntPtr SendMessageTimeout(
|
||||||
|
IntPtr hWnd,
|
||||||
|
uint Msg,
|
||||||
|
IntPtr wParam,
|
||||||
|
string lParam,
|
||||||
|
uint fuFlags,
|
||||||
|
uint uTimeout,
|
||||||
|
out IntPtr lpdwResult);
|
||||||
|
}
|
||||||
|
"@
|
||||||
|
|
||||||
|
$HWND_BROADCAST = [IntPtr]0xffff
|
||||||
|
$WM_SETTINGCHANGE = 0x1A
|
||||||
|
$SMTO_ABORTIFHUNG = 0x2
|
||||||
|
$timeout = 100
|
||||||
|
|
||||||
|
# Send the broadcast message to all windows
|
||||||
|
[Win32]::SendMessageTimeout($HWND_BROADCAST, $WM_SETTINGCHANGE, [IntPtr]::Zero, "ImmersiveColorSet", $SMTO_ABORTIFHUNG, $timeout, [ref]([IntPtr]::Zero))
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user