【问题标题】:Changing the solid desktop background color in VB在VB中更改纯色桌面背景颜色
【发布时间】:2017-09-11 10:00:20
【问题描述】:

我正在尝试更改纯色桌面背景颜色,并且我正在使用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,但对我没有帮助。

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

【问题讨论】:

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


【解决方案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

希望对某人有用:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 2018-03-04
    • 2013-08-08
    • 1970-01-01
    相关资源
    最近更新 更多