繁体   English   中英

德尔福ActiveX MSTSCLib

[英]Delphi ActiveX MSTSCLib

我正在尝试使用一些用于MS-RDP的Delphi ActiveX库(mstscax.dll),因此我将该库导入了我的项目,并开始在网络上查找一些代码片段。 乍一看,这很明显,但是由于缺少示例,因此有点复杂。

首先,库在以下行中给出了在Delphi Seattle上的错误:

property ConnectWithEndpoint: POleVariant1 write Set_ConnectWithEndpoint;

好的,我把这一行注释掉了(我知道这不是最好的解决方案),但是已经编译了。 后来我尝试仅将POleVariant1更改为OleVariant,并且仍在编译。 好的,编译后,我尝试了以下代码:

var
  Form1: TForm1;
  RDP: TMsRdpClient8NotSafeForScripting;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  RDP:= TMsRdpClient8NotSafeForScripting.Create(Nil);
  RDP.Server:= 'xxxx';
  RDP.AdvancedSettings8.RDPPort:= 3389;
  RDP.UserName:= 'terminal';
  RDP.AdvancedSettings8.ClearTextPassword:= '123456';
  RDP.Connect;
  if RDP.Connected.ToBoolean = true then
    ShowMessage('connected')
  else
    ShowMessage('error');

end;

我为var RDP尝试了一些不同类型,例如仅TMsRdpClient8,但仍然存在相同的问题:它甚至不尝试连接! 在看嗅探器时,没有建立任何TCP连接,什么也没有发生,并且出现“错误”消息。 关于如何与这个人一起工作的任何想法?

这个问题引起了我的兴趣,因此我尝试导入该ActiveX控件并自己尝试。 它似乎对我有用,所以我将解释自己的工作。

我导入了mstscax.dll ActiveX控件,然后将其添加到新程序包中,以便将组件安装到工具选项板上。 我立即遇到了您对ConnectWithEndpoint属性所做的错误。 我将声明中的类型更改为OleVariant,因为Set_ConnectWithEnpoint属性设置器函数采用了OleVariant。 我们的ActiveX导入程序代码显然与类型信息有关。 无论哪种方式,该更改都会使文件得以编译并安装组件包。 现在有一堆TMsRdpClientXXXX组件。

创建一个新的VCL Forms项目,然后将TMsRdpClient9组件放入该表单中。 添加了一个TButton,然后将以下代码添加到了按钮的OnClick处理程序中:

  MsRdpClient91.Server := '<some remote server>';
  MsRdpClient91.Domain := 'embarcadero.com';
  MsRdpClient91.UserName := 'abauer';
  MsRdpClient91.Connect;

一旦我运行了该应用程序并按下按钮,它就连接了,ActiveX控件的内容显示了远程服务器登录屏幕就很好了。

我正在运行Windows 10,内部版本10565。

这是我在编写的小应用程序中看到的内容: 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM