Get Dark Mode CMD

Share your advanced PureBasic knowledge/code with the community.
User avatar
J. Baker
Addict
Addict
Posts: 2181
Joined: Sun Apr 27, 2003 8:12 am
Location: USA
Contact:

Get Dark Mode CMD

Post 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
www.posemotion.com

PureBasic Tools for OS X: PureMonitor, plist Tool, Data Maker & App Chef


Even the vine knows it surroundings but the man with eyes does not.
BarryG
Addict
Addict
Posts: 4173
Joined: Thu Apr 18, 2019 8:17 am

Re: Get Dark Mode CMD

Post by BarryG »

Confirmed works on Win 10 Pro. :) Thanks!
breeze4me
Enthusiast
Enthusiast
Posts: 633
Joined: Thu Mar 09, 2006 9:24 am
Location: S. Kor

Re: Get Dark Mode CMD

Post 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
Post Reply