您好,欢迎来到华佗养生网。
搜索
您的当前位置:首页rdpdelphi实现远程桌面

rdpdelphi实现远程桌面

来源:华佗养生网
rdp delphi 实现远程桌面

rdp delphi 实现远程桌面

博客分类: other

1.

首先确保你的机器上存在 mstscax.dll ,如果没有这个

文 件,可以从

http://download.microsoft.com/download/whistler/tools/1.0/ wxp/en-us/msrdpcli.exe 下载并安装远程桌面连接软件.或

者使用 WindowXP 中自带的 mstscax.dll ,运行 regsvr32

mstscax.dll 进行注册, ccrun 测试使用的 mstscax.dll 版本

号 是 5.1.2600.0 ,在 Windows2000 Server 中可以编译。

2.

运行 delphi 7-->Components-->Import Active

Control ,在列表中找到下面的 Microsoft Terminal Services Active Client 1.0 Type Library (Version 1.0), 点击 install ,你

可以选择将其安装到现在的包中, 也可以新建一个, 选择 Into new package--> 点击 Browser 将其保存为

D:Program FilesBorlandccrunmstscmstsc.bpk 。在 Description

一栏可 以填: Microsoft Terminal Service Control ,这个名称将出现 在安装完成后的 Package 列表中。点击 OK 以后,稍等片刻, 系统会提示 mstsc.bpl 将被编译并且安装,是否继续,点击 yes 。这时如果一切正常的话, 系统将提示有两个编译错误 (嘿 嘿,我指的是正常情况下 ),难道是 BCB 的 BUG ?提示找不 到

OlePrecedure 的定义。我靠。记忆中有个

OleProcedure , 一个 o ,一个 e ,该不会真的是笔误

吧。 将两处 OlePrecedure 换成 OleProcedure ,再次编译, ok 了,编译成功, 点击 Install 安装。

3. 如果上一个步骤成功的话, 在组件面板的 ActiveX

下将多 出两个控件: MsTscAx 和 MsRdpClient ,我们主要是利用 MsTscAx 控件。

4. MsTscAx 控件的常用属性和方法:

MsTscAx1.DesktopHeight = 600;// 桌面高度

MsTscAx1.DesktopWidth = 800;// 桌面宽度

MsTscAx1.ConnectingText = 'Welcome! ccrun.';// 在连

接前显示的字符串

MsTscAx1.Server = '127.0.0.1';// 连接的服务器地

MsTscAx1.FullScreen = false;

// 窗口 / 全屏模

MsTscAx1.ColorDepth = 16;// 256 色 )

画面色深 (通常都是

MsTscAx1.UserName = 'administrator';//

登录用

户名

MsTscAx1.DisconnectedText = '886,ccrun.';// 断 开连

接后显示的字符串

MsTscAx1.AdvancedSettings.BitmapPeristence =

1;// 将位图缓存到磁盘

MsTscAx1.AdvancedSettings.Compress = 1;//

用数据压缩

MsTscAx1.SecuredSettings.set_StartProgram('C:\\ccrun\\1 23.exe');// 连接后运行的 Shell 程序,当关闭此 Shell 程序

后 自动断开连接

MsTscAx1.Connect();// 连接

MsTscAx1.Disconnect();// 断开连接

5.

新建一个 Project ,在 Form 上拖一个 MsTscAx 控

件,根 据上面介绍的属性和方法,相信你在 BCB 中建立自己的终 端服务客户端没问题了。 代码示例:

[delphi] view plaincopy

unit Unit1;

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, OleCtrls, MSTSCLib_TLB, StdCtrls;

type

TForm1 = class(TForm)

btn1: TButton;

msrdpclnt: TMsTscAx;

procedure btn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm} procedure TForm1.btn1Click(Sender: TObject);

var

proj: ImsRdpclientAdvancedSettings; // 定义密码用

p1: IMsRdpClientAdvancedSettingsDisp; //

自定义端

口 用

begin

msrdpclnt.Server := '127.0.0.1';

if

msrdpclnt.AdvancedSettings.QueryInterface(IMsRdpClient AdvancedSettingsDisp, p1) = S_OK then

begin

p1.RDPPort := 33;

end;

msrdpclnt.UserName := 'administrator';

if

msrdpclnt.AdvancedSettings.QueryInterface(ImsRdpclient AdvancedSettings,proj) = S_OK then

begin

proj.Set_ClearTextPassword('123');

end;

msrdpclnt.Connect;

end; end.

示例 2 :

[delphi] view plaincopy

unit uRDP;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, OleCtrls, MSTSCLib_TLB, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Edit1: TEdit;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private-Deklarationen }

public

{ Public-Deklarationen }

MsRdpClient: TMsRdpClient;

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

MsRdpClient := TMsRdpClient.Create(Self);

with MsRdpClient do

begin

Name := 'MsRdpClient';

Parent := Self;

Left := 0;

Top := 0;

Width := 800;

Height := 600; TabOrder := 0;

ControlData :=

{0003000008000200000000000B000000030000000000}; // Dies kennt er nicht

end;

Edit1.BringToFront;

Button1.BringToFront;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

MsRdpClient.Server := Edit1.Text; MsRdpClient.Domain :=

GetEnvironmentVariable('USERDNSDOMAIN');

MsRdpClient.UserName := '<username>';

MsRdpClient.AdvancedSettings2.ClearTextPassword := '<password>';

MsRdpClient.Connect;

end;

end. 6. 编译后的程序发布时必须在目标机器上存在 mstscax.dll 文件,并且用 Regsvr32 注册以后才能正常

运行

分享到:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo7.cn 版权所有 湘ICP备2022005869号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务