[DllImport("user32.dll")]
static extern uint GetSysColor(int nIndex);
<DllImport("user32.dll")> _
Public Shared Function GetSysColor(ByVal nIndex As Integer) As Integer
' Use nIndex = 1 to get Desktop color
End Function
None.
You can also use the COLOR_ constants as the index.
Here's which color corresponds to what in winuser.h
| SystemColors.ScrollBar | CTLCOLOR_MSGBOX, COLOR_SCROLLBAR |
| SystemColors.Desktop | CTLCOLOR_EDIT, COLOR_BACKGROUND, COLOR_DESKTOP |
| SystemColors.ActiveCaption | CTLCOLOR_LISTBOX, COLOR_ACTIVECAPTION |
| SystemColors.InactiveCaption | CTLCOLOR_BTN, COLOR_INACTIVECAPTION |
| SystemColors.Menu | CTLCOLOR_DLG, COLOR_MENU |
| SystemColors.Window | CTLCOLOR_SCROLLBAR, COLOR_WINDOW |
| SystemColors.WindowFrame | CTLCOLOR_STATIC, COLOR_WINDOWFRAME |
| SystemColors.MenuText | CTLCOLOR_MAX, COLOR_MENUTEXT |
| SystemColors.WindowText | COLOR_WINDOWTEXT |
| SystemColors.ActiveCaptionText | COLOR_CAPTIONTEXT |
| SystemColors.ActiveBorder | COLOR_ACTIVEBORDER |
| SystemColors.InactiveBorder | COLOR_ACTIVEBORDER |
| SystemColors.AppWorkspace | COLOR_APPWORKSPACE |
| SystemColors.Highlight | COLOR_HIGHLIGHT |
| SystemColors.HighlightText | COLOR_HIGHLIGHTTEXT |
| SystemColors.ButtonFace | COLOR_BTNFACE, COLOR_3DFACE |
| SystemColors.ControlDark | COLOR_BTNSHADOW |
| SystemColors.GrayText | COLOR_GRAYTEXT |
| SystemColors.ControlText | COLOR_BTNTEXT |
| SystemColors.InactiveCaptionText | COLOR_INACTIVECAPTIONTEXT |
| SystemColors.ControlLightLight | COLOR_BTNHIGHLIGHT, COLOR_3DHIGHLIGHT, COLOR_3DHILIGHT, COLOR_BTNHILIGHT |
| SystemColors.ControlDarkDark | COLOR_3DSHADOW, COLOR_3DDKSHADOW |
| SystemColors.ControlLight | COLOR_3DLIGHT |
| SystemColors.InfoText | COLOR_INFOTEXT |
| SystemColors.Info | COLOR_INFOBK |
| SystemColors.HotTrack | COLOR_HOTLIGHT |
| SystemColors.GradientActiveCaption | COLOR_GRADIENTACTIVECAPTION |
| SystemColors.GradientInactiveCaption | COLOR_GRADIENTINACTIVECAPTION |
| SystemColors.MenuHighlight | COLOR_MENUHILIGHT |
| SystemColors.MenuBar | COLOR_MENUBAR |
VB.NET example
'Get the Desktop background color
Dim i as Integer = GetSysColor(1)
'GetSysColor returns in BGR byte order NOT RGB
Dim colorDT as Color = Color.FromARGB(i and &HFF, (i and &HFF00) >> 8, (i and &HFF0000) >> 16)
VB.NET
Dim colorDT as Color = SystemColors.Desktop
'Any other System color can be returned - See SystemColors class
