babalae/better-genshin-impact · error · InvalidOperationException
RDP ActiveX 控件尚未完成初始化,无法访问 COM 实例。
Error message
RDP ActiveX 控件尚未完成初始化,无法访问 COM 实例。
What it means
Error "RDP ActiveX 控件尚未完成初始化,无法访问 COM 实例。" thrown in babalae/better-genshin-impact.
Source
Thrown at BetterGenshinImpact/View/Controls/ChildSession/RdpActiveXHost.cs:570
}
private static bool IsNonTerminalLogonEvent(int errorCode)
{
// 这些代码表示登录仍在继续或 ActiveX 正在显示可交互选项,不应提前判定连接失败。
return errorCode is -5 or -4 or -2 or 3;
}
private object GetRequiredOcx()
{
if (!IsHandleCreated)
{
// WindowsFormsHost 在未连接空白态会被折叠,普通 CreateControl() 会因不可见而跳过创建。
// 读取 Handle 会忽略可见性并强制 AxHost 创建底层窗口及 ActiveX 实例。
_ = Handle;
}
return GetOcx()
?? throw new InvalidOperationException(
"RDP ActiveX 控件尚未完成初始化,无法访问 COM 实例。");
}
private static object? GetComProperty(object target, string propertyName)
{
return target.GetType().InvokeMember(
propertyName,
BindingFlags.GetProperty,
binder: null,
target,
args: null,
CultureInfo.InvariantCulture);
}
private static void SetComProperty(object target, string propertyName, object value)
{
target.GetType().InvokeMember(
propertyName,View on GitHub (pinned to a7cb36712d)
Solutions
- 等待 RDP ActiveX 控件初始化完成后再操作
- 重启桌面分身功能重建控件
- 确认系统支持并启用了 RDP ActiveX
Example fix
确认系统存在 mstscax.dll 且未被安全软件拦截;以足够权限运行 BetterGI,必要时重装系统组件。
When it happens
Trigger: GetRequiredOcx 强制创建句柄后 GetOcx() 仍返回 null,即底层 ActiveX/COM 实例不存在时抛出。
Common situations: RDP ActiveX 控件初始化失败(组件缺失、权限不足或创建被安全软件拦截)。
AI-assisted analysis of babalae/better-genshin-impact@a7cb36712d (2026-08-13).
Data as JSON: /api/errors/e23a4e0624f6b2cb.
Report an issue: GitHub.