我正在一个项目中工作,应用程序需要自动连接到删除桌面(RDP 协议)。为此,我使用了来自 Delphi 的库 MSTSCLib_TLB,它使用了 mstscax.dll。问题是 Windows 识别出连接来自 ActiveX 控件,并显示以下警告:
此警告使服务器上的自动连接变得困难。
注意:“网站正在尝试启动远程连接”,而我正在从可执行文件中执行此操作...我在 Internet 上阅读了有关此消息的信息,并在 Windows 注册表上尝试了一些解决方案,但都没有解决问题. 我接受适用于 Windows 注册表的解决方案以停止显示此警告,但我更喜欢编程解决方案。我看到了使用 IObjectSafety 对 ActiveX 对象进行签名并将 SetInterfaceSafetyOptions 设置为“INTERFACESAFE_FOR_UNTRUSTED_CALLER”的建议,但我不知道这意味着什么以及如何实现这一点。
我的应用程序是在 Delphi 上编码的,我在 Windows 10 上。到目前为止的代码是:
procedure TForm1.Button1Click(Sender: TObject);
var
Client: TMsRdpClient9;
begin
Client:= TMsRdpClient9.Create(Self);
Client.Parent:= Self; //dont know why, but this ActiveX control needs a parent
Client.Server:= Edit1.Text;
Client.UserName:= Edit2.Text;
Client.AdvancedSettings9.ClearTextPassword:= Edit3.Text;
Client.OnLoginComplete:= LoginComplete;
Client.Connect;
end;