rdp

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\123.exe');// 连接后运行的Shell程序,当关闭此Shell程序后自动断开连接

    MsTscAx1.Connect();// 连接

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

5. 新建一个Project,在Form上拖一个MsTscAx控件,根据上面介绍的属性和方法,相信你在BCB中建立自己的终端服务客户端没问题了。

   代码示例:     

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(IMsRdpClientAdvancedSettingsDisp, p1) = S_OK then
  begin
    p1.RDPPort := 3389;
  end;

  msrdpclnt.UserName := 'administrator';
  if msrdpclnt.AdvancedSettings.QueryInterface(ImsRdpclientAdvancedSettings,proj) = S_OK then
  begin
    proj.Set_ClearTextPassword('123'); 
  end;
  msrdpclnt.Connect;
end;

end.

示例2:

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注册以后才能正常运行。

RDP(Remote Desktop Protocol)终端用户权限的管理和设置工具,用于管理和设置Windows远程桌面连接中的用户权限,有效防止RDP远程连接过程中的用户权限漏洞。 具体功能如下: 1、禁止关机、注销、禁用命令行、任务管理器、控制面板等。 2、设置用户帐号的登录时间限制,过期时间限制。例如只允许周一至周五的9:00~18:00登录。 3、隐藏或禁用磁盘内容,只允许运行特定的应用程序或禁止运行指定的应用程序。 该软件需要 Microsoft .NET Framework 2.0 运行环境。 Windows再爆超高危漏洞 黑客一个指令看光用户隐私 3月13日晚间,微软发布了今年3月份的安全公告,共更新了6个漏洞。其中一个名为MS12-020的漏洞为超高危漏洞,黑客可利用该漏洞特别构造RDP协议包来远程控制用户电脑或服务器,该漏洞影响Windows XP、Vista、2003、win7和2008等主流操作系统。考虑到远程桌面服务在系统中默认打开,大量用户正在使用此服务,瑞星特此发布紧急提示,告知用户尽快安装此漏洞补丁。目前,瑞星安全助手(http://tool.ikaka.com/)已经对此次微软更新的漏洞列表提供了自动安装修复功能据介绍,MS12-020漏洞存在于Windows的远程桌面协议中,如果攻击者向开启远程桌面的计算机发送一个特别构造的RDP协议包请求,那么就能对其进行远程代码执行,也就是通常上说的可对电脑进行远程控制。 瑞星安全专家表示,与以往黑客通过病毒来实现对用户电脑控制的方式不同,此次漏洞导致黑客只需要发送一个协议数据包,便可以获得未安装此漏洞补丁电脑的本地最高权限,进而获取用户电脑上存储的所有资料。用户虽然可以通过关闭远程桌面服务来暂时避免受攻击,但最彻底的解决办法仍是第一时间安装微软的相关漏洞补丁。 附: 微软2012年3月份安全公告地址:http://technet.microsoft.com/en-us/security/bulletin/ms12-mar MS12-020漏洞说明:http://technet.microsoft.com/en-us/security/bulletin/ms12-020 解决方案,可以通过RDP终端安全设置工具 搞定安全问题!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值