在VB中更改实体桌面背景颜色

时间:2017-09-11 10:00:21

标签: vb.net visual-studio background-color

我正在尝试更改实体桌面背景颜色,我正在使用RegistryKey这样做:

Dim CD As New ColorDialog
If CD.ShowDialog = DialogResult.OK Then
    Dim RK As RegistryKey = Registry.CurrentUser.OpenSubKey("Control Panel\Colors", True)
    RK.SetValue("Background", CD.Color.R & " " & CD.Color.G & " " & CD.Color.B)
End If

我见过this question,但在我的情况下没有用。

上面的代码是有效的,因为注册表编辑器中的值正在改变,但背景颜色不是,如果我从控制面板编辑颜色,它将在注册表编辑器中更改相同的值,背景颜色将变化,有人为此解释过,还是有其他方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

我终于让它工作了,只能通过编辑注册表项来完成,实际上你需要使用user32.dll API这样做,你可以使用注册表项来获取由于Steve (↑),只有颜色的值,但不能设置它。

这对我有用:

首先> 声明此功能以使用API​​:

 Private Declare Function SetSysColors Lib "user32.dll" (ByVal one As Integer, ByRef element As Integer, ByRef color As Integer) As Boolean

秒> 使用此功能调用该函数并更改颜色:

Dim CD As New ColorDialog
If CD.ShowDialog = DialogResult.OK Then
    Dim BackgroundColor As Integer = ColorTranslator.ToWin32(CD.Color)
    SetSysColors(1, 1, BackgroundColor)
End If

希望对某人有用:)