babalae/better-genshin-impact · error · COMException

RDP ActiveX 未返回 AdvancedSettings7。

Error message

RDP ActiveX 未返回 AdvancedSettings7。

What it means

Error "RDP ActiveX 未返回 AdvancedSettings7。" thrown in babalae/better-genshin-impact.

Source

Thrown at BetterGenshinImpact/View/Controls/ChildSession/RdpActiveXHost.cs:97

        SetComProperty(client, "ColorDepth", 32);
        SetComProperty(client, "ConnectingText", "正在创建 BetterGI 桌面分身...");
        SetComProperty(client, "DisconnectedText", "BetterGI 桌面分身已断开");

        var securedSettings = GetComProperty(client, "SecuredSettings2")
            ?? throw new COMException("RDP ActiveX 未返回 SecuredSettings2。");
        RunComStep("设置系统组合键发送位置", () =>
            SetComProperty(
                securedSettings,
                "KeyboardHookMode",
                _sendSystemShortcutsToRemote ? 1 : 0));
        RunComStep("设置远程音频重定向", () =>
            SetComProperty(
                securedSettings,
                "AudioRedirectionMode",
                _audioMuted ? DisableRemoteAudio : RedirectAudioToClient));

        var advancedSettings = GetComProperty(client, "AdvancedSettings7")
            ?? throw new COMException("RDP ActiveX 未返回 AdvancedSettings7。");
        RunComStep("设置 RDP 连接端口", () =>
            SetComProperty(
                advancedSettings,
                "RDPPort",
                ChildSessionNativeMethods.GetConfiguredRdpPort()));
        RunComStep("启用 CredSSP", () =>
            SetComProperty(advancedSettings, "EnableCredSspSupport", true));
        RunComStep("启用远程 Windows 键", () =>
            SetComProperty(advancedSettings, "EnableWindowsKey", 1));
        RunComStep("设置显示缩放", () =>
            SetComProperty(advancedSettings, "SmartSizing", _smartSizingEnabled));

        object connectToChildSession = true;
        RunComStep("设置 ConnectToChildSession", () =>
        {
            var extendedSettings = (IMsRdpExtendedSettings)client;
            TrySetExtendedProperty(extendedSettings, "EnableZoom", true);
            extendedSettings.set_Property("ConnectToChildSession", ref connectToChildSession);

View on GitHub (pinned to a7cb36712d)

Solutions

  1. 确认系统 RDP ActiveX 组件版本支持 AdvancedSettings7 接口
  2. 更新 Windows 远程桌面客户端组件
  3. 重启 BetterGI 后重试

Example fix

升级系统到受支持的 Windows 版本并打全补丁;确认 mstscax.dll 未损坏。

When it happens

Trigger: 读取 RDP ActiveX 的 AdvancedSettings7 属性返回 null,无法设置端口、CredSSP 等高级项时抛出。

Common situations: MsTscAx 组件版本不支持 AdvancedSettings7(过旧)或 COM 对象创建异常。


AI-assisted analysis of babalae/better-genshin-impact@a7cb36712d (2026-08-13). Data as JSON: /api/errors/60a7389593c4cc47. Report an issue: GitHub.