我有一个客户端 - 服务器窗体应用程序,我需要在屏幕的角落做一个边框,以便直观地了解我连接的服务器。我搜索了很多但什么也没找到,所以每当服务器成为客户端的目标时,我就会想改变taskbar的颜色。 但我不知道如何从visual studio(c#)获得对任务栏的控制。 有什么想法吗?
我试图使用:
[DllImport("dwmapi.dll", PreserveSig = false)]
答案 0 :(得分:0)
答案 1 :(得分:0)
要更改整个任务栏的颜色(我假设您正在谈论Windows 7或更高版本),您必须更改Windows视觉主题颜色,例如可以通过控制面板 - >来完成。个性化 - >颜色和外观。
我不认为任务栏的颜色与应用程序有任何关联,并且它是系统范围的设置(或者更准确地说是用户范围的设置)。
我相信这就是你所追求的,如何改变windows颜色主题/方案。
为此,我想你想使用WIN32API调用SetSystemVisualStyle(uxtheme.dll)
您可以设置系统主题颜色,但它可能看起来很明亮,因此很难说它完全改变了。如果Windows样式是“Aero Glass”而不是“Aero Basic”,则可能会发生这种情况。在此stackoverflow问题的第二个答案中讨论了更改THAT的WIN32API调用:How to change windows color scheme using c#?
对于旧版本的Windows,(我认为)或者如果上述API调用不适合您,您可以尝试WIN32API调用:SetWindowTheme(uxtheme.dll)
我在你的问题中注意到你提到了dwmapi.dll。看pinvoke.net,我注意到一些相关的WIN32API调用,即 DwmSetColorizationParameters(dwmapi.dll)听起来确实可以改变单个窗口的Aero主题颜色,以及窗口的透明度等。但是,从我读到的内容来看,windows的new / ist版本可能不支持这种功能,但据称它可以创建从一种颜色到另一种颜色的平滑过渡。有关详细信息,请参阅此代码项目:Changing Windows Aero Color
如果这对您有用,请告诉我,我很想知道这是否解决了您的问题。