最近工作用到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>
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/6480.html