Share your advanced PureBasic knowledge/code with the community.
-
J. Baker
- Addict

- Posts: 2181
- Joined: Sun Apr 27, 2003 8:12 am
- Location: USA
-
Contact:
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
-
BarryG
- Addict

- Posts: 4173
- Joined: Thu Apr 18, 2019 8:17 am
Post
by BarryG »
Confirmed works on Win 10 Pro.

Thanks!
-
breeze4me
- Enthusiast

- Posts: 633
- Joined: Thu Mar 09, 2006 9:24 am
- Location: S. Kor
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