{"record":{"id":"e23a4e0624f6b2cb","repo":"babalae/better-genshin-impact","slug":"rdp-activex-com","errorCode":null,"errorMessage":"RDP ActiveX 控件尚未完成初始化，无法访问 COM 实例。","messagePattern":"RDP ActiveX 控件尚未完成初始化，无法访问 COM 实例。","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"BetterGenshinImpact/View/Controls/ChildSession/RdpActiveXHost.cs","lineNumber":570,"sourceCode":"    }\n\n    private static bool IsNonTerminalLogonEvent(int errorCode)\n    {\n        // 这些代码表示登录仍在继续或 ActiveX 正在显示可交互选项，不应提前判定连接失败。\n        return errorCode is -5 or -4 or -2 or 3;\n    }\n\n    private object GetRequiredOcx()\n    {\n        if (!IsHandleCreated)\n        {\n            // WindowsFormsHost 在未连接空白态会被折叠，普通 CreateControl() 会因不可见而跳过创建。\n            // 读取 Handle 会忽略可见性并强制 AxHost 创建底层窗口及 ActiveX 实例。\n            _ = Handle;\n        }\n\n        return GetOcx()\n               ?? throw new InvalidOperationException(\n                   \"RDP ActiveX 控件尚未完成初始化，无法访问 COM 实例。\");\n    }\n\n    private static object? GetComProperty(object target, string propertyName)\n    {\n        return target.GetType().InvokeMember(\n            propertyName,\n            BindingFlags.GetProperty,\n            binder: null,\n            target,\n            args: null,\n            CultureInfo.InvariantCulture);\n    }\n\n    private static void SetComProperty(object target, string propertyName, object value)\n    {\n        target.GetType().InvokeMember(\n            propertyName,","sourceCodeStart":552,"sourceCodeEnd":588,"githubUrl":"https://github.com/babalae/better-genshin-impact/blob/a7cb36712dcb409be610257d877fcea3597e9d6b/BetterGenshinImpact/View/Controls/ChildSession/RdpActiveXHost.cs#L552-L588","documentation":"Error \"RDP ActiveX 控件尚未完成初始化，无法访问 COM 实例。\" thrown in babalae/better-genshin-impact.","triggerScenarios":"GetRequiredOcx 强制创建句柄后 GetOcx() 仍返回 null，即底层 ActiveX/COM 实例不存在时抛出。","commonSituations":"RDP ActiveX 控件初始化失败（组件缺失、权限不足或创建被安全软件拦截）。","solutions":["等待 RDP ActiveX 控件初始化完成后再操作","重启桌面分身功能重建控件","确认系统支持并启用了 RDP ActiveX"],"exampleFix":"确认系统存在 mstscax.dll 且未被安全软件拦截；以足够权限运行 BetterGI，必要时重装系统组件。","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a7cb36712dcb409be610257d877fcea3597e9d6b","analyzedAt":"2026-08-13T16:44:57.548Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}