我正在尝试禁用 Windows Server 2012 R2 远程桌面会话中的所有视觉效果。这通常通过系统 => 高级系统设置 => 性能“设置”并应用“调整以获得最佳性能”预设来完成。
由于没有可以设置的组策略设置或注册表值,我偶然发现了 SystemParamtersInfo 函数。不幸的是,它对我正在测试它的 RDP 会话绝对没有影响。
我不是一个好的程序员,这就是我在 MSDN 和谷歌的帮助下编织在一起的。
namespace SetVisualEffects
{
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
public class SetVisualEffects
{
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SystemParametersInfo(uint uiAction, uint uiParam, bool pvParam, uint fWinIni);
private static UInt32 SPI_SETUIEFFECTS = 0x103F;
private static UInt32 SPI_SETFONTSMOOTHING = 0x004b;
private static UInt32 SPI_SETDROPSHADOW = 0x1025;
public static void Main()
{
SystemParametersInfo(SPI_SETDROPSHADOW, 0, false, 0);
SystemParametersInfo(SPI_SETUIEFFECTS, 0, false, 0);
SystemParametersInfo(SPI_SETFONTSMOOTHING, 0, false, 0);
}
}
}
和我使用 C++ 的类似方法,不幸的是结果相同。
#include <windows.h>
#include <stdio.h>
#include <iostream>
#pragma comment(lib, "user32.lib")
int main()
{
// Disables all UI effects.
SystemParametersInfo(SPI_SETUIEFFECTS, 0, FALSE, SPIF_SENDCHANGE);
// Disables "Animate controls and elements inside windows"
// Disables "Animate windows when minimizing and maximizing"
// Disables "Animations in the taskbar"
// Disables "Enable Peek"
// Disables "Fade or slide menus into view"
SystemParametersInfo(SPI_SETMENUANIMATION, 0, FALSE, SPIF_SENDCHANGE);
SystemParametersInfo(SPI_SETMENUFADE, 0, FALSE, SPIF_SENDCHANGE);
// Disables "Fade or slide ToolTips into view"
SystemParametersInfo(SPI_SETTOOLTIPFADE, 0, FALSE, SPIF_SENDCHANGE);
// Disables "Fade out menu items after clicking"
SystemParametersInfo(SPI_SETSELECTIONFADE, 0, FALSE, SPIF_SENDCHANGE);
// Disables "Save taskbar thumbnail previews"
// Disables "Show shadows under mouse pointer"
SystemParametersInfo(SPI_SETCURSORSHADOW, 0, FALSE, SPIF_SENDCHANGE);
// Disables "Show shadows under windows"
// Disables "Show thumbnails instead of icons"
// Disables "Show translucent selection rectangle"
// Disables "Show window contents while dragging"
// Disables "Slide open combo boxes"
SystemParametersInfo(SPI_SETCOMBOBOXANIMATION, 0, FALSE, SPIF_SENDCHANGE);
// Disables "Smooth edges of screen fonts"
SystemParametersInfo(SPI_SETFONTSMOOTHING, 0, FALSE, SPIF_SENDCHANGE);
// Disables "Smooth-scroll list boxes"
SystemParametersInfo(SPI_SETLISTBOXSMOOTHSCROLLING, 0, FALSE, SPIF_SENDCHANGE);
// Disables "Use drop shadows for icon labels on the desktop"
SystemParametersInfo(SPI_SETDROPSHADOW, 0, FALSE, SPIF_SENDCHANGE);
return 0;
}
那么我在这里做错了什么?