rdpdelphi实现远程桌面.docx
- 文档编号:30424656
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:6
- 大小:16.33KB
rdpdelphi实现远程桌面.docx
《rdpdelphi实现远程桌面.docx》由会员分享,可在线阅读,更多相关《rdpdelphi实现远程桌面.docx(6页珍藏版)》请在冰豆网上搜索。
rdpdelphi实现远程桌面
rdpdelphi实现远程桌面
rdpdelphi实现远程桌面
博客分类:
other
1.首先确保你的机器上存在mstscax.dll,如果没有这个文件,可以从
wxp/en-us/msrdpcli.exe下载并安装远程桌面连接软件.或者使用WindowXP中自带的mstscax.dll,运行regsvr32mstscax.dll进行注册,ccrun测试使用的mstscax.dll版本号是5.1.2600.0,在Windows2000Server中可以编译。
2.运行delphi7-->Components-->ImportActive
Control,在列表中找到下面的MicrosoftTerminalServicesActiveClient1.0TypeLibrary(Version1.0),点击install,你可以选择将其安装到现在的包中,也可以新建一个,选择Intonewpackage-->点击Browser将其保存为D:
ProgramFilesBorlandccrunmstscmstsc.bpk。
在Description一栏可以填:
MicrosoftTerminalServiceControl,这个名称将出现在安装完成后的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]viewplaincopy
unitUnit1;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,
Graphics,Controls,Forms,
Dialogs,OleCtrls,MSTSCLib_TLB,StdCtrls;
type
TForm1=class(TForm)
btn1:
TButton;
msrdpclnt:
TMsTscAx;
procedurebtn1Click(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form1:
TForm1;
implementation
{$R*.dfm}procedureTForm1.btn1Click(Sender:
TObject);
var
proj:
ImsRdpclientAdvancedSettings;//定义密码用
p1:
IMsRdpClientAdvancedSettingsDisp;//自定义端口
用
begin
msrdpclnt.Server:
='127.0.0.1';
if
msrdpclnt.AdvancedSettings.QueryInterface(IMsRdpClient
AdvancedSettingsDisp,p1)=S_OKthen
begin
p1.RDPPort:
=3389;
end;
msrdpclnt.UserName:
='administrator';
if
msrdpclnt.AdvancedSettings.QueryInterface(ImsRdpclient
AdvancedSettings,proj)=S_OKthen
begin
proj.Set_ClearTextPassword('123');
end;
msrdpclnt.Connect;
end;
end.
示例2:
[delphi]viewplaincopy
unituRDP;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,
Graphics,Controls,Forms,
Dialogs,OleCtrls,MSTSCLib_TLB,StdCtrls;
type
TForm1=class(TForm)
Button1:
TButton;
Edit1:
TEdit;
procedureButton1Click(Sender:
TObject);
procedureFormCreate(Sender:
TObject);
private
{Private-Deklarationen}
public
{Public-Deklarationen}
MsRdpClient:
TMsRdpClient;
end;
var
Form1:
TForm1;
implementation
{$R*.dfm}
procedureTForm1.FormCreate(Sender:
TObject);
begin
MsRdpClient:
=TMsRdpClient.Create(Self);
withMsRdpClientdo
begin
Name:
='MsRdpClient';
Parent:
=Self;
Left:
=0;
Top:
=0;
Width:
=800;
Height:
=600;
TabOrder:
=0;
ControlData:
=
{0003000008000200000000000B000000030000000000};//Dieskennternicht
end;
Edit1.BringToFront;
Button1.BringToFront;
end;
procedureTForm1.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注册以后才能正常运行
分享到:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- rdpdelphi 实现 远程桌面