`
luckliu521
  • 浏览: 258763 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

rdp delphi实现远程桌面

 
阅读更多
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中建立自己的终端服务客户端没问题了。
   代码示例:    
[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(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:
[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注册以后才能正常运行。
分享到:
评论

相关推荐

    Delphi远程桌面.zip_Delphi RDP_delphi_delphi 远程_远程 Delphi

    Delphi远程桌面是一款基于Delphi开发的远程桌面访问软件,它允许用户通过网络连接到另一台计算机,实现远程控制和管理。Delphi是一种强大的对象 Pascal 编程语言,由Embarcadero Technologies维护,常用于创建...

    delphi 远程桌面代码

    通过注册微软的mstsc组件,调用系统的远程,实现远程桌面,可以通过写代码保存N多服务器远程,自由控制 RDPClient.Server := '192.168.1.2'; //RDPClient.AdvancedSettings2.RDPPort := 3389; RDPClient....

    Delphi实现远程控制桌面显示(关机、重启、注销)

    Delphi编写实现的远程控制程序,若客户端与服务器端端口一致的话,很容易连接上远程桌面,通过远程桌面可控制远程计算机隐藏桌面、关闭系统、重启系统、注销系统等功能,窗体的实现为各种控制操作提供便利条件。...

    远程桌面程序

    2. **远程桌面协议(RDP)**:虽然Delphi本身并不直接支持Microsoft的RDP协议,但开发者可以通过第三方库或自定义实现来模拟RDP的功能。RDP允许用户以图形化的方式远程控制另一台计算机,包括键盘输入、鼠标移动、...

    Delphi批理远程桌面管理.rar

    总之,Delphi批量远程桌面管理工具是通过利用Delphi的强大编程能力,结合Windows API和RDP技术,实现对远程计算机的有效管理。这种工具不仅提高了工作效率,也减轻了系统管理员的工作负担,是IT运维领域不可或缺的...

    远程桌面实现(C++&&Delphi)源码

    本项目提供的“远程桌面实现(C++&&Delphi)源码”是一个经过修正的远程桌面传输程序,它利用了分块和隔行扫描的技术来优化数据传输效率和用户体验。 首先,让我们深入理解一下远程桌面的核心概念。远程桌面协议...

    Delphi批理远程桌面管理(10.3).7z

    总结,"Delphi批量远程桌面管理(10.3)"是一个高效且安全的远程桌面管理工具,通过Delphi 10.3的强大功能,实现了对远程服务器的便捷管理和监控。其背后的源码结构和关键技术,对于Delphi开发者来说,具有很高的学习...

    Delphi远程桌面.rar

    在描述中,我们只看到"Delphi远程桌面.rar",这可能意味着这个项目是一个实现了远程桌面功能的应用,允许用户通过网络连接并控制另一台计算机。远程桌面技术通常涉及网络通信协议,如RDP(远程桌面协议)或自定义...

    Delphi7的VNC远程控制控件破解版

    不要看下载资源分高,这可是真正可用的Delphi7远程控件破解版(本人破解),网上的大部分没有破解,运行时总会有提示,本破解版不会有任何提示,需要的尽快下载吧。

    远程桌面3389端口修改器 (附delphi 和vc源码)

    在Windows系统中,远程桌面的端口号信息存储在注册表中,主要位于`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp`键下。 在Delphi源码中,开发者可能会使用TRegistry...

    远程桌面代码

    在提供的文件列表中,我们可以看到一些可能与远程桌面实现相关的文件: 1. Clear.bat:这可能是一个批处理文件,用于清理或设置环境,可能包含启动或关闭远程桌面服务的命令。 2. USend.dfm和Unit1.dfm:这些文件是...

    VC 结合Delphi实现隔行扫描 远程桌面传输.rar

    在本项目中,“VC 结合Delphi实现隔行扫描 远程桌面传输.rar”是一个包含源码的压缩包,主要用于教学目的,展示了如何利用Visual C++(VC)和Delphi这两种不同的编程语言来实现一项特定的技术:隔行扫描和远程桌面...

    修改远程桌面端口

    远程桌面服务是Windows操作系统提供的一种远程访问功能,允许用户通过网络连接到另一台计算机并进行交互操作。在默认情况下,远程桌面使用TCP协议的3389端口进行通信。然而,出于安全考虑或者避免网络拥堵,有时我们...

    远程桌面DELPH源码

    在这个特定的上下文中,我们讨论的是基于DELPHI编程语言实现的远程桌面源码,包括"DClient(ICS6)"和"DServer(ICS6)"两个部分,以及可能与"D7正向连接方式"相关的源代码。 首先,DELPHI是一种面向对象的编程语言,...

    delphi2007开发远端桌面插件

    总的来说,使用Delphi 2007开发远程桌面插件是一个涉及系统级编程、ActiveX控件使用和RDP协议理解的综合任务。完成这个项目需要扎实的Delphi编程基础,以及对Windows API和远程桌面服务的深入理解。通过这样的开发,...

    rdpwrap-master_RDp_delphi_RDPWrap_rdpwrap.ini_zip_

    RDP(Remote Desktop Protocol)是微软提供的一种远程桌面连接协议,允许用户通过网络访问和控制远程计算机。在本文中,我们将深入探讨RDPWrapper、Delphi编程语言以及`rdpwrap.ini`配置文件,这些都是与"rdpwrap-...

    安卓-用手机远程查看电脑桌面(附delphi源码)android

    通过学习和理解这段Delphi源码,开发者不仅可以创建一个实用的远程桌面应用,还能深入理解网络编程、多平台交互和RDP协议的工作原理。这对于扩展到其他类似的项目,如远程控制IoT设备或构建跨平台的协作工具,都是...

    Rdp_COM_XE8_RDp_生成XE8下的RdpCOM安装包_支持屏幕控制_

    3. **RdpCOM组件**:这是专为Delphi XE8开发的RDP控件,允许开发者在应用程序中集成RDP功能,比如实现远程桌面连接、控制等功能。RdpCOM组件简化了RDP协议的复杂性,使得开发者无需深入理解底层细节就能在应用中实现...

    rdp密码生成demo

    标题“rdp密码生成demo”涉及的是在Delphi编程环境下创建一个能生成远程桌面协议(Remote Desktop Protocol, RDP)密码的应用程序。RDP是一种允许用户通过网络远程访问另一台计算机桌面的技术,广泛应用于Windows...

    delphi7开发的价值十万的远程控制软件

    1. **远程桌面访问**:通过模拟Windows的远程桌面协议(RDP),开发者可能创建了一个自定义的客户端和服务端组件。这涉及到网络编程,如TCP/IP套接字通信,以及对桌面捕获和图像编码的知识,以便将屏幕内容发送到...

Global site tag (gtag.js) - Google Analytics