一起谈.NET技术,SilverLight自动安装

1、 准备js,参考了一个js弹出层的例子。最后自动输出exe,类似flash安装。ie可以自动安装,其他浏览器需要手动下载安装包。


var isOK = Silverlight.isInstalled("4.0.50524.0");
if (!isOK) {
var msgw, msgh, bordercolor;
msgw = 450; //提示窗口的宽度
msgh = 150; //提示窗口的高度
titleheight = 25 //提示窗口标题高度
bordercolor = "#336699"; //提示窗口的边框颜色
titlecolor = "#99CCFF"; //提示窗口的标题颜色

var sWidth, sHeight;
sWidth = document.body.offsetWidth; //浏览器工作区域内页面宽度
sHeight = screen.height; //屏幕高度(垂直分辨率)

//背景层(大小与窗口有效区域相同,即当弹出对话框时,背景显示为放射状透明灰色)
var bgObj = document.createElement("div"); //创建一个div对象(背景层)
//定义div属性,即相当于
//<div id="bgDiv" style="position:absolute; top:0; background-color:#777; filter:progid:DXImagesTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75); opacity:0.6; left:0; width:918px; height:768px; z-index:10000;"></div>
bgObj.setAttribute('id', 'bgDiv');
bgObj.style.position = "absolute";
bgObj.style.top = "0";
bgObj.style.background = "#777";
bgObj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=2,opacity=25,finishOpacity=75";
bgObj.style.opacity = "0.6";
bgObj.style.left = "0";
bgObj.style.width = sWidth + "px";
bgObj.style.height = sHeight * 2 + "px";
bgObj.style.zIndex = "10000";
document.body.appendChild(bgObj); //在body内添加该div对象

var msgObj = document.createElement("div")//创建一个div对象(提示框层)
//定义div属性,即相当于
//<div id="msgDiv" align="center" style="background-color:white; border:1px solid #336699; position:absolute; left:50%; top:50%; font:12px/1.6em Verdana,Geneva,Arial,Helvetica,sans-serif; margin-left:-225px; margin-top:npx; width:400px; height:100px; text-align:center; line-height:25px; z-index:100001;"></div>
msgObj.setAttribute("id", "msgDiv");
msgObj.setAttribute("align", "center");
msgObj.style.background = "white";
msgObj.style.border = "1px solid " + bordercolor;
msgObj.style.position = "absolute";
msgObj.style.left = "50%";
msgObj.style.top = "20%";
msgObj.style.font = "12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif";
msgObj.style.marginLeft = "-225px";
msgObj.style.marginTop = -75 + document.documentElement.scrollTop + "px";
msgObj.style.width = msgw + "px";
msgObj.style.height = msgh + "px";
msgObj.style.padding = "0px";
msgObj.style.textAlign = "center";
msgObj.style.lineHeight = "25px";
msgObj.style.zIndex = "10001";

var title = document.createElement("h4"); //创建一个h4对象(提示框标题栏)

//定义h4的属性,即相当于
//<h4 id="msgTitle" align="right" style="margin:0; padding:3px; background-color:#336699; filter:progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100); opacity:0.75; border:1px solid #336699; height:18px; font:12px Verdana,Geneva,Arial,Helvetica,sans-serif; color:white; cursor:pointer;" onclick="">关闭</h4>
title.setAttribute("id", "msgTitle");
title.setAttribute("align", "right");
title.style.margin = "0";
title.style.padding = "3px";
title.style.background = bordercolor;

title.style.filter = "progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100);";
title.style.opacity = "0.75";
title.style.border = "1px solid " + bordercolor;
title.style.height = "18px";

title.style.font = "12px Verdana, Geneva, Arial, Helvetica, sans-serif";

title.style.color = "white";
title.style.cursor = "pointer";
title.innerHTML = "关闭";

function removeObj() {//点击标题栏触发的事件
document.body.removeChild(bgObj); //删除背景层Div
document.getElementById("msgDiv").removeChild(title); //删除提示框的标题栏
document.body.removeChild(msgObj); //删除提示框层
}
title.onclick = removeObj;

document.body.appendChild(msgObj); //在body内添加提示框div对象msgObj
document.getElementById("msgDiv").appendChild(title); //在提示框div中添加标题栏对象title

var dv = document.createElement("div");
dv.setAttribute("id", "slInstall");
dv.setAttribute("style", "font-family:Arial; font-size:14px; ");
dv.innerHTML = "<br />安装Microsoft Silverlight后,才能正常浏览该页面。<br /><span id=\"msgSpan\">系统正在下载或者安装此程序。或者 <a href=\"\" id=\"downLink\">点击此处</a> 手动安装。</span><br />安装完成后请重新启动浏览器。";
document.getElementById("msgDiv").appendChild(dv); //在提示框div中添加提示信息对象txt

//输出exe
var downHost = "改为你的地址 例如http://192.168.23.22:8008/download/";
var osInfo = window.navigator.userAgent;
var exeName = "";
if (osInfo.indexOf("Windows NT") >= 0) exeName = "Silverlight4forwindows.exe";
else if (osInfo.indexOf("PPC Mac OS X") >= 0) exeName = "Silverlight4formac.dmg";
else if (osInfo.indexOf("Intel Mac OS X") >= 0) exeName = "Silverlight4formac.dmg";
document.getElementById("downLink").href = downHost + exeName;

/*判断浏览器*/
if (osInfo.indexOf("MSIE") == -1) {
document.getElementById("msgSpan").innerHTML = "您的浏览器不支持自动安装Silverlight,请 <a href=\"\" style=\"text-decoration:underline\" id=\"downLink\">点击此处</a> 手动安装。";

}
else {
//输出exe安装包
run_exe = "<OBJECT ID=\"RUNIT\" WIDTH=0 HEIGHT=0 TYPE=\"application/x-oleobject\""
run_exe += "CODEBASE=\"{0}\">"
run_exe += "</OBJECT>"
run_exe = run_exe.replace("{0}", downHost + exeName);
document.open();
document.clear();
document.writeln(run_exe);
document.close();
}

}

2、在html里面调用该js,将silverlightfor window的安装文件和silverlightformac的安装文件放到根目录,命名为js中写的名字(Silverlight4forwindows.exe,Silverlight4formac.dmg)。


<body>
<form id="form1" runat="server" style="height:100%">
<div id="silverlightControlHost">
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/AutoInstallSilverlight.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.50401.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="获取 Microsoft Silverlight" style="border-style:none"/>
</a>
</object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
</form>
<script language="javascript" src="autoInstall.js"></script>
</body>

3、预览效果。

 

4、可以调整的地方,删除这一句,就可以去掉微软的安装提示。


<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="获取 Microsoft Silverlight" style="border-style:none"/>
</a>

源码:http://files.cnblogs.com/xiaokang088/AutoInstallSilverlightWebSite.rar

 

时间: 2024-12-22 08:39:10

一起谈.NET技术,SilverLight自动安装的相关文章

SilverLight自动安装

1. 准备js,参考了一个js弹出层的例子.最后自动输出exe,类似flash安装.ie可以自动安装,其他浏览器需要手动下载安装包. var isOK = Silverlight.isInstalled("4. 0.50524.0"); if (!isOK) { var msgw, msgh, bordercolor; msgw = 450; //提示窗口的宽度 msgh = 150; //提示窗口的高度 titleheight = 25 //提示窗口标题高度 bordercolor

一起谈.NET技术,自动更新组件分享

一. 摘要 前两天在博客上发布了一篇英文的自动更新组件文章Release a AutoUpdater tool,那么在这篇文章中,我们也对其功能进行一些简单说明,这个组件非常简单,所以大家可以下载进行一些改进.众所周知,对于一般的软件开发,在开始的时候都会有一个技术选型的阶段,最大的选型就是首先要确定是选择Client/Server模式还是Browser/Server模式.综合而论:两者各有优劣,在很多方面都不能被对方互相取代,如在适用Internet.维护工作量等方面,B/S比C/S要强很多:

【急】要实现自动安装SQLSERVER 2005,安装IIS,配置IIS站点。--要用到什么技术?

问题描述 公司有1套小型B/S版人事系统.想做1套自动安装程序,执行SETUP.exe后,全程自动实现安装IIS,SQLSERVER等.用哪种工具,或者语言可以实现呢? 解决方案 解决方案二: NSIS解决方案三: 解决方案四: 该回复于2012-03-19 12:58:35被版主删除

滥用Accessibility service自动安装应用

滥用Accessibility service自动安装应用  2016年02月01日 16:17  27287 一.恶意应用简介:  近年许多的android市场实现免root安装应用,也就是下载完成立即自动安装,而黑产界也同样利用该技术在进行恶意推广,静默安装.最近拦截到大量恶意应用利用系统AccessibilityService静默安装应用.一旦恶意的Accessibility服务被激活,恶意应用将弹出广告,即使用户关闭弹出的广告该应用程序也会在后台下载,随后自动安装推广的恶意应用. 二.A

巧用WinRAR+Javascript解决activeX的自动安装问题

先纠正一个观点,所谓自动安装并非强制安装,否则就变成流氓软件了,就算是silverlight,flash这类知名ActiveX,用户也有选择安装或是不安装的权利. 较正统的解决办法是提示用户设置IE权限,然后在object里加入codebase='ocx的下载路径',然后制作数字证书,个人觉得这样比较复杂. 我的办法: 1.先用js检测activex是否可用 代码  <object id='x' name='x' classid='clsid:82AB2103-26BC-4999-8DDE-DF

微软强制Windows 10家庭版用户自动安装更新

微软将强制Windows 10家庭版用户‍‍‍‍‍‍自动安装所有系统更新. 微软已经表示,‍‍‍‍‍‍Windows 10是一项服务,它可以持续获得更新.Windows 10不再是安装之后就被微软抛弃的软件.因此,微软将强制用户更新系统.微软发言人确认,自动更新是Windows 10官方服务条款的一部分. 据悉,Windows 10将于7月29日正式发布. 微软在一份声明中表示:"Windows 10软件许可条款要求系统开启自动更新,此举可以保护客户的安全,并以服务的形式提供Windows.&q

一起谈.NET技术,[翻译]ASP.NET MVC 3 RC 发布通告

今天早上,ASP.NET组发布了ASP.NET 3 RC版(release candidate).你们可以从这里进行下载here. ASP.NET MVC 3是个很完美的发布,增加了大量的功能改进.它可以向后兼容ASP.NET MVC V1 和 V2,可以轻易的升级你现有的项目(可以阅读发布须知,根据里面的步骤去做).你还可以通过我之前发表的博客文章来学习ASP.NET MVC 3的很多功能.  今天的ASP.NET MVC 3 RC build 包含了一些附加的功能改进(除了修正了一些bug外

自动安装Win 2000操作系统

自动安装 1.整个安装过程不需要你参与,像Windows 98全自动安装一样. 2.自动将Windows 2000的分区格式为NTFS. 3.自动将Windows 2000安装到当前活动分区C盘. 二.有关准备 1.要有一张Windows 2000启动安装光盘. 2.你的主板BIOS支持从光驱启动. 3.制作全自动安装控制文件winnt.sif. 4.一张空白软盘. 5.对当前活动分区C盘(可以是多C盘,不一定非要第一硬盘的第一分区,可以是第二分区,但该分区必须被激活)的重要数据做备份,因为安装

用InstallShield 进行 ASP 软件的打包和自动安装(Jaron原创)

installshield|打包|原创|自动安装 用InstallShield 进行 ASP 软件的打包和自动安装(Jaron原创) 作者: Jaron 点击链接查看作者详细信息 简介: 用InstallShield 进行 ASP 软件的打包和自动安装(原创) #include "ifx.h" //不能移动//////////////////////////////////////////////////////////////////////////////// 用InstallSh