首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mstsc ActiveX控制警告

Mstsc ActiveX控制警告
EN

Stack Overflow用户
提问于 2015-11-13 12:01:14
回答 2查看 2K关注 0票数 3

我正在处理一个项目,应用程序需要自动连接到一个移除桌面(RDP协议)。为此,我使用来自德尔福的库MSTSCLib_TLB,该库使用mstscax.dll。问题是,Windows标识来自ActiveX控件的连接,并显示此警告:

此警告使服务器上的自动连接变得困难。

注意:“一个网站试图启动一个远程连接”,而我正在从一个可执行文件.我在互联网上读到了这条消息,并在Windows注册表上尝试了一些解决方案,但都没有解决问题。我接受在Windows注册表上工作的解决方案以停止显示此警告,,但我更喜欢以编程方式解决方案。我看到了使用ActiveX对IObjectSafety对象进行签名并将SetInterfaceSafetyOptions设置为"INTERFACESAFE_FOR_UNTRUSTED_CALLER“的建议,但我不知道这意味着什么以及如何实现这一点。

我的应用程序是在Delphi上编写的,我是在Windows 10上编写的。

代码语言:javascript
运行
复制
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;
EN

回答 2

Stack Overflow用户

发布于 2015-11-13 13:00:42

明白了。我没有使用"TMsRdpClient9“,而是在以下代码中使用了"TMsRdpClientNotSafeForScripting”:

代码语言:javascript
运行
复制
procedure TForm1.Button1Click(Sender: TObject);
var
  Client: TMsRdpClientNotSafeForScripting;
begin
  Client:= TMsRdpClientNotSafeForScripting.Create(Self);
  Client.Parent:= Form1;
  Client.Server:= Edit1.Text;
  Client.ControlInterface.UserName:= Edit2.Text;
  Client.AdvancedSettings2.ClearTextPassword:= Edit3.Text;
  Client.Connect;
end;
票数 3
EN

Stack Overflow用户

发布于 2017-11-03 04:38:23

user3810691提供的答案的本质也适用于C# WinForms。在COM Components选项卡(用于选择工具箱项)中:

Microsoft客户端控件-版本10

而不是:

Microsoft RDP客户端控件(可再发行)-版本10

这将给您“不安全的脚本”版本9(原文如此!)控制类型:

AxMSTSCLib.AxMsRdpClient9NotSafeForScripting

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33692324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档