Page 1 of 1

Get Dark Mode CMD

Posted: Thu Nov 28, 2024 2:59 am
by J. Baker
Just a simple CMD way to check for Dark Mode.

Code: Select all

CMD = RunProgram("cmd", "/c reg query HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize\ /v SystemUsesLightTheme", "", #PB_Program_Open | #PB_Program_Read | #PB_Program_Write)

Light = 0

While ProgramRunning(CMD)
  If AvailableProgramOutput(CMD)
    Light$ = ReadProgramString(CMD) + Chr(13)
    If FindString(Light$, "0x1")
      Light = 1
    EndIf
  EndIf
Wend

If Light = 1
  Debug "Light"
Else
  Debug "Dark"
EndIf

Re: Get Dark Mode CMD

Posted: Thu Nov 28, 2024 8:14 am
by BarryG
Confirmed works on Win 10 Pro. :) Thanks!

Re: Get Dark Mode CMD

Posted: Thu Nov 28, 2024 11:05 am
by breeze4me
Simply...

Code: Select all

Define Light, ValueType = #REG_DWORD, Size = 4
;Define ValName.s = "AppsUseLightTheme"
Define ValName.s = "SystemUsesLightTheme"


; https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shgetvaluew
;If SHGetValue_(#HKEY_CURRENT_USER, "SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize", ValName, @ValueType, @Light, @Size) = #ERROR_SUCCESS

; https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shreggetusvaluew
If SHRegGetUSValue_("SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize", ValName, @ValueType, @Light, @Size, 0, 0, 0) = #ERROR_SUCCESS
  If Light = 1
    Debug "Light"
  Else
    Debug "Dark"
  EndIf
EndIf