我正在参与一个应用需要自动连接到远程桌面(RDP协议)的项目。为此,我使用了Delphi的MSTSCLib_TLB库,该库使用mstscax.dll。
问题是Windows识别出连接来自ActiveX控件,并显示以下警告:
这个警告让在服务器上自动连接变得困难。
注意:"一个网站正在尝试启动远程连接",而我是从可执行文件中进行操作的...... 我在互联网上读到了关于此消息的一些信息,并尝试了一些在Windows注册表上的解决方案,但没有一个解决了这个问题。 我接受可以在Windows注册表上工作以停止显示此警告的解决方案,但我更喜欢编程解决方案。我看到有人建议使用IObjectSafety对ActiveX对象进行签名,并将SetInterfaceSafetyOptions设置为"INTERFACESAFE_FOR_UNTRUSTED_CALLER",但我不知道这意味着什么以及如何实现它。
我的应用程序是使用Delphi编写的,我使用的是Windows 10。目前为止,代码如下:
注意:"一个网站正在尝试启动远程连接",而我是从可执行文件中进行操作的...... 我在互联网上读到了关于此消息的一些信息,并尝试了一些在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;