delphi - 如何发现远程桌面 session 的图像质量设置?

标签 delphi winapi terminal-services

我正在使用 DevExpress 皮肤。我实现了一个手动禁用皮肤的开关。我需要这个基本上是因为终端服务器(我需要有一个扁平的外观以节省连接带宽)。

无论如何,手动切换并不好,因为用户在本地或远程使用应用程序时必须连续使用它。当然只有关心外观的用户。

我想保留手动开关,但还想添加另一个自动开关 检查 Windows 设置性能的开关(我不知道如何 用英语告诉我,无论如何,我的意思是性能设置可以让任何人 Windows 版本的外观,例如 Windows '98)。我想(如果可能的话) 具有适用于每个 Windows 版本(2K、XP、Vista、7、 和服务器对应部分)。

请注意,我不仅仅想知道我的系统是否在 RDP 中运行,还想知道性能设置是否设置为高图像质量。

最佳答案

您可以使用 Delphi Jedi Apilib 中的我的 JwaWinsta 单元。

更具体地说,您可以将 WinStationQueryInformationW 与 WinStationClient 信息类一起使用,该类返回 WINSTATIONCLIENT 结构。

在此结构中是 WinStationClientFlags 成员,它是一个位字段,可以包含以下常量的任何掩码:

  TS_PERF_DISABLE_NOTHING = $0;
  TS_PERF_DISABLE_WALLPAPER = $1;
  TS_PERF_DISABLE_FULLWINDOWDRAG = $2;
  TS_PERF_DISABLE_MENUANIMATIONS = $4;
  TS_PERF_DISABLE_THEMING = $8;
  TS_PERF_ENABLE_ENHANCED_GRAPHICS = $10;
  TS_PERF_DISABLE_CURSOR_SHADOW = $20;
  TS_PERF_DISABLE_CURSORSETTINGS = $40;
  TS_PERF_ENABLE_FONT_SMOOTHING= $80;
  TS_PERF_ENABLE_DESKTOP_COMPOSITION = $100;
  TS_PERF_DEFAULT_NONPERFCLIENT_SETTING = $40000000;
  TS_PERF_RESERVED1 = $80000000;

此外,该结构还返回 ColorDepth 成员。

关于delphi - 如何发现远程桌面 session 的图像质量设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4334345/

相关文章:

delphi - TFlowPanel。在运行时添加控件

Delphi XE4 TWebBrowser - 以编程方式为 IE 安装自签名证书

c++ - Windows编程: Why do we cast lParam to CREATESTRUCT to get application state?

remoting - (如何)终端服务/远程桌面可以用于共享 Access 数据库吗?

c# - 检测远程桌面连接的来源

delphi - JEDI JCL 压缩库无法打开跨区存档文件

delphi - 为 Delphi 7 编译 HtmlViewer 组件时出错

vb.net - 如何在 VB.net 2010 Express 中使用 Windows API 代码包?

.net - 如何获取远程网络共享的磁盘使用统计信息?

docker - 在 Windows 10 容器上启用远程桌面