Javascript调用MsRdpClient 完成Web调用远程桌面

原创 2013年12月04日 17:28:12

最近工作用到Web连接远程桌面,查找资料发现MsRdpClient都是vbscript写的。由于不太熟悉vbscript ,只能一点点改成js。。 下面是具体代码,希望给需要的人一些帮助~~

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <meta http-equiv="x-ua-compatible" content="IE=8">
    <title>RDP</title>
    <style type="text/css">
        body {
            padding: 0;
            margin: 0;
        }
    </style>
</head>
<body>
    <script type="text/javascript">
  //if ("条件") { 
         //   if (window.opener.SetRDPID) { //调用打开此页的父页面中的方法
        //        window.opener.SetRDPID("123");
        //    };
// 连接远程桌面的方法
            function RdpConnect() {
                var userName, Pwd, server, domain, port;
                userName = "administrator"; //用户名
                server = "192.168.1.117"; //IP
                port = 3389; //端口
domain = "myDomain";  //域
                if (!MsRdpClient.Connected) {
                    try {
                        document.getElementById("connectArea").style.display = "block"; //显示远程桌面div
                        MsRdpClient.Server = server; //设置远程桌面IP地址
                        try {
                            MsRdpClient.AdvancedSettings2.RedirectDrives = false;
                            MsRdpClient.AdvancedSettings2.RedirectPrinters = false;
                            MsRdpClient.AdvancedSettings2.RedirectPrinters = false;
                            MsRdpClient.AdvancedSettings2.RedirectClipboard = true;
                            MsRdpClient.AdvancedSettings2.RedirectSmartCards = false;
                        } catch (ex) {
                        };


                        MsRdpClient.Domain = domain;//域
                        MsRdpClient.UserName = userName;
                        //MsRdpClient.AdvancedSettings2.ClearTextpassword = Pwd; //密码
                        MsRdpClient.AdvancedSettings2.RDPPort = port; //端口
                        if (document.getElementById("ColorDepth").value == 1) {
                            ColorDepth16();
                        } else {
                            ColorDepthDefault();
                        };
                        MsRdpClient.FullScreen = 1;  //是否全屏 0否 1是
                        if (document.getElementById("Screen").value == 1) {
                            Screen1();
                        } else {
                            ScreenDefault();
                        };
                        try {
                            //如果不支持,继续下面操作
                            MsRdpClient.AdvancedSettings7.EnableCredSspSupport = true;
                            MsRdpClient.AdvancedSettings5.AuthenticationLevel = 2;
                        } catch (ex) {
                        } finally {                
                            MsRdpClient.Connect();  //连接远程桌面
                        }
                    } catch (ex) {
                        alert("发生错误:" + ex.message + "请尝试刷新页面重新连接。");
                    };
                } else {
                    alert("已连接!");
                };
            };
            //var logoff = false; //存储是否正常注销
            //全屏
            function FullScreen() {
                if (MsRdpClient.Connected) {
                    MsRdpClient.FullScreen = 1;
                };
            };
            //1024*768
            function ScreenDefault() {
                MsRdpClient.Width = 1024; //设置远程桌面 显示区域的宽和高
                MsRdpClient.Height = 768;
                MsRdpClient.DesktopWidth = 1024;  //设置 远程桌面的宽和高
                MsRdpClient.DesktopHeight = 768;
            };
            //800*600
            function Screen1() {
                MsRdpClient.Width = 800; //设置远程桌面 显示区域的宽和高
                MsRdpClient.Height = 600;
                MsRdpClient.DesktopWidth = 800;  //设置 远程桌面的宽和高
                MsRdpClient.DesktopHeight = 600;
            };
            //色彩度,默认32位
            function ColorDepthDefault() {
                MsRdpClient.ColorDepth = 32;
            };
            //色彩度16位
            function ColorDepth16() {
                MsRdpClient.ColorDepth = 16;
            };
            function reSet() {
                document.getElementById("Screen").selectedIndex = 1;
                document.getElementById("ColorDepth").selectedIndex = 1;
            };

//关闭当前页面
        function closeWindow() {
            window.opener = null;
            window.open("", "_self");
            window.close();
        };
</script>
    <!--远程桌面参数设置start-->
    <div style="display:none"><fieldset>
        分辨率:<select id="Screen">
            <option value="1">800*600</option>
            <option value="2" selected="selected">1024*768</option>
        </select>
        色彩度:<select id="ColorDepth">
            <option value="1">16位</option>
            <option value="2" selected="selected">32位</option>
        </select>
        <input type="button" value="重置" onclick="reSet()" />
    </fieldset>
    <input type="button" id="connectbutton" value="连接" onclick="RdpConnect();" /></div>
     <!--远程桌面参数设置end-->
    <input type="button" class="btn btn-warning" style="width:80px;" value="全屏" onclick="FullScreen()" />
    <div id="connectArea" style="display: none;">
        <table>
            <tr>
                <td>
                    <object id="MsRdpClient"
                        classid="CLSID:7584c670-2274-4efb-b00b-d6aaba6d3850"
                        codebase="msrdp.cab#version=5,2,3790,0" width="1024px" height="768px">
                    </object>
                </td>
            </tr>
            <script type="text/javascript">
                function MsRdpClient::OnDisconnected(disconnectCode) {
                    document.getElementById("connectArea").style.display = "none";
                    //正常注销,代码为2
                    //if (disconnectCode != 2) {
                    //    if (logoff == false) {
                    //        alert("计算机处于断开状态,请根据提示完成后续步骤:\r\n(1)如果您操作已完成,请刷新页面重新连接并注销;\r\n(2)如果仍需操作,请刷新页面后继续,完毕后请注销。\r\n谢谢您的配合!");
                    //    } else {
                    //        alert("计算机已注销,如需使用,请刷新此页面。");
                    //    }
                    //} else {
                    //    logoff = true; //记录注销状态
                    //    //关闭当前页面
                    //};
                    closeWindow();
                }
            </script>
        </table>
    </div>
</body>
</html>

另附:

相关文章推荐

html5之应用,纯web rdp 远程桌面连接

10.23补充 最近在网上找到了一个开源的web rdp引擎,可以参考一下,通过界面介绍,感觉好不错。 http://guac-dev.org/     最近一直在琢磨如何方便部署和开发堡垒机,li...
  • zhulinu
  • zhulinu
  • 2012年03月12日 22:23
  • 24036

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

html5之应用,纯web rdp 远程桌面连接

10.23补充 最近在网上找到了一个开源的web rdp引擎,可以参考一下,通过界面介绍,感觉好不错。 http://guac-dev.org/ 又找了一个开源的,试过之后感觉c...

如何实现Windows 2003远程桌面Web 连接

如何实现Windows 2003远程桌面   ...
  • l1t
  • l1t
  • 2008年02月14日 10:57
  • 11598

利用mstscax.dll开发远程登录客户端

最近项目要用到远程登录客户端,类似于windows自带的mstsc.exe的功能,自己在网上找了好久,说是可以在mstscax.dll基础上进行开发,但是找不到比较好的资料,经过自己的摸索,终于成功了...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

web远程桌面

下载:远程桌面WEB连接工具 1.0 简介 1.1 什么是远程桌面 Web 连接? 欢迎使用“远程桌面 Web 连接”。“远程桌面 Web 连接”是“终端服务”组件及功能的一个中间版本。此版本的...

使用远程桌面控件AdvanceSettings的一种方法

默认情况下,远程桌面控件的Advanced Settings类是不会自动导出的。需要自己手工导出。1:在VC++中新建一个MFC应用程序工程命名为mstsc,并选择应用程序类型为基于对话框,完成。2:...
  • ssmile
  • ssmile
  • 2011年03月11日 10:56
  • 3757

远程服务器调用本地js方法

这是一个远程服务器调用 本地JS方法的例子, 本地代码:         function showdata(data) {             alert(data);       ...
  • wuxhyou
  • wuxhyou
  • 2015年05月19日 14:36
  • 3133
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Javascript调用MsRdpClient 完成Web调用远程桌面
举报原因:
原因补充:

(最多只允许输入30个字)