2006年5月16日

如何激活ActiveX控件 - 解决Windows XP SP2(KB912945) 出现的问题

如何激活ActiveX控件 - 解决Windows XP SP2(KB912945) 出现的问题
 

前一阵子在开发的过程中,遇到了一个问题,想必大家肯定遇到过或者看到过(我深信)。

现象:打开含有SVG图的页面时,SVG图周围会出现一个虚线框,鼠标放上去之后会显示(Click to activate and use this control. )的标签。 

起初以为是由于IE设定不妥当,才出现了这样的问题。但是回家上网打开IE时也出现了同样的现象,仔细一想肯定不是IE设定的原因,唯一能够联想到的就是Windows Update。

查了一下Windows Update的履历后,发现了一个可疑的SP2补丁(KB912945),

http://www.microsoft.com/downloads/details.aspx?FamilyID=999D37C3-4013-48DE-B950-EE01256AAA92&displaylang=zh-cn#Instructions

微软中文主页是这样描述这个补丁的。

本更新程序包括有关 Internet Explorer 对某些使用 Microsoft ActiveX 控件的网页的处理方式的微小改动。 某些网页将要求用户通过单击 Active X 控件或使用 TAB 键和 ENTER 键将其手动激活。 本更新程序包含以前发布的所有安全更新程序。安装本更新程序之后,可能需要重新启动计算机。

也就是说,装了这个补丁之后IE就要求用户手动激活ActiveX控件。这也就是产生虚线框和(Click to activate and use this control. )标签的原因。 

是否有什么规避的方法?经过一番调查在微软的主页上看到了以下文档。

http://www.microsoft.com/china/msdn/library/webservices/WebApp/activating_activex.mspx?mfr=true

具体说来,就是通过”外部加载交互控件”的方式来规避这个想象。也就是说诸如APPLET,EMBED,OBJECT的标签,不要直接定义在HTML页中,可以将这些标签定义到外部的JS文件里,随后在HTML页中加载该控件,从而达到”外部加载交互控件”的效果。

例如

<html>
 <body leftmargin=0 topmargin=0 scroll=no>
    <script src="Embed.js"></script>
 </body>
</html>
 
Embed.js
<embed id='svggraph' src = '' height='300' width='450' type='image/svg+xml'></embed>

 

这个<embed></embed><html></html>中分离了出来,被定义在Embed.js文件中。而HTML文件则通过引用的方式<script src="Embed.js"></script>来加载这个标签,从而达到了外部加载的目的。大家可以比较一下分离出来和未被分离出来是否是一个自动激活,而另一个则需要用户手动激活。

 

posted @ 2006-05-16 18:34 天行健,君子以自强不息;地势坤,君子以厚德载物! 阅读(4687) 评论(1) 编辑

2006年4月12日

SVG + Javascript + ASP.NET + WebService开发楼宇管理系统(六)


续上一篇SVG + Javascript + ASP.NET + WebService开发楼宇管理系统(五)


这一篇继续上一个主题,总结一下开发过程中遇到的问题。
目前的架构是这样的:



用户在WEB画面上设定某个设备的状态后,后台处理会将这个请求保存到数据库(No.1),和硬件打交道的那个进程会实时地去监测数据库一旦有请求的话即会立刻处理(上图中未画出来)。与此同时WEB画面的客户端会执行一个SetInterval,过一定时间就去起动WebService(No.2),WebService返回当前设备的状态以及请求处理的情况(No.3)。请求处理结束,将最新的状态显示在画面上,并且ClearInterval。

起初请求只有一个,表示/设定/监视都没有什么问题。
可是后来请求一多之后,就出现问题了。基本上是以下两个现象
1,请求和结果不匹配
2,请求无法终了

仔细一想通过JavaScript调用WebService,WebService并不是立刻就将结果返回给JavaScript的,两者并不是同步的,而是异步的关系。
所以在WebService的返回值中必须表明是对于哪个请求的返回值。否则当然会产生请求和结果不匹配的情况,请求无法终了也是理所当然的。

下一篇开始介绍JavaScript操作SVG的一些技巧。

posted @ 2006-04-12 20:08 天行健,君子以自强不息;地势坤,君子以厚德载物! 阅读(1110) 评论(2) 编辑

2006年4月10日

SVG + Javascript + ASP.NET + WebService开发楼宇管理系统(五)

开发过程中遇到了一些问题.我做了一个总结。
并且给出我们现在的解决方案。


问题: 点击SVG文件中的超链,连接至别的ASPX文件时,未必一定会触发该ASPX文件的PAGE_LOAD事件.





步骤1:点击NEXT,页面会连接至WebForm2,此时会触发WebForm2的PAGE_LOAD事件
步骤2:点击WebForm2的PREVIOUS,页面跳转会WebForm1
步骤3:此时再点击WebForm1的NEXT,尽管也能跳转至WebForm2,但是不会触发WebForm2的PAGE_LOAD事件
原因不明,如果哪位大虾知道的话,还请赐教!



目前的解决方案是
点击SVG文件中的超链后(就是Next),调用父页面的(WebForm1 OR WebForm2)中的JS函数,在JS函数中引发PAGE_LOAD事件.
将windows.location.ref 设成目标页面的URL。这样便可解决上述问题。

 

posted @ 2006-04-10 21:00 天行健,君子以自强不息;地势坤,君子以厚德载物! 阅读(852) 评论(2) 编辑

2006年4月6日

SVG + Javascript + ASP.NET + WebService开发楼宇管理系统(四)

摘要: 这是[SVG + Javascript + ASP.NET + WebService开发楼宇管理系统] 系列的第四篇。
主要给出几个实际的画面。其中包括:楼层图,房间图,遥控器。
并且对这些画面作了一个简单的说明。阅读全文

posted @ 2006-04-06 21:26 天行健,君子以自强不息;地势坤,君子以厚德载物! 阅读(960) 评论(2) 编辑

2006年3月29日

SVG + Javascript + ASP.NET + WebService开发楼宇管理系统(三)

SVG + Javascript + ASP.NET + WebService开发楼宇管理系统(三)
                                                                                                                               ————工作流

接上一篇SVG + Javascript + ASP.NET + WebService开发楼宇管理系统(二)

下面开始写第二篇,也就是提供给维护方的程序。
主要的构想是提供一个WORK FLOW,维护方可以通过这个工作流来导入这个系统。其实说白了就是让维护方来设定初始化数据,因为这些数据根据大楼不同而不同。现在主要的构想是以下一些部分:



 

简单说明:

STEP:1

主要先确定该幢大楼的具体构造。从数据的角度来说,取得大楼的层数,每一层名字,每层有几间房间,每间房间的名字。(暂时考虑用文件浏览器的方式来实现)

STEP:2  ,STEP:3

根据STEP:1中所设定的楼层数以及每层的房间数,来生成空的Visio文件。其中文件的命名值得推敲,为方便起见,
楼层图采取,楼层ID + ‘.svg’;
房间图采取,楼层ID + ‘-’+ 房间ID + ‘.svg’;

STEP:4  ,STEP:5

为了能够操纵图上的某些部件来达到动态变化的效果,先要自己做一些自定义的部件,并在这些自定义部件中定义一些自定义属性。例如: 27  C    用以动态显示温度的Label部件。其中设置三个自定义属性,一个是部件的种别;另一个是图形ID;还有就是房间ID,一个房间里可以拥有多个空调或者其他设备。事先告知客户(注1)在画平面图的时候,如果是普通部件的话用一般的Visio控件就可以了,如果需要动态变化的部件,则请他使用事先做好的自定义部件。

STEP:6

SVG + Javascript + ASP.NET + WebService开发楼宇管理系统 - 杂记1 中我已经谈到过
下述变化无法在Visio中实现,

<rect x="0" y="0" rx="5" ry="5" width="100" height="16">
                                        ↓
<rect  id="ttr" x="0" y="0" rx="5" ry="5" width="100" height="16">


但是这一步又是非做不可的(否则就无法操纵单个SVG的TAG),所以最后决定再做一个变换工具来实现这个功能。另外从楼层画面到房间画面的跳转无非就是一个超级连接的问题,为了让用户方便,这个超级连接也一并放在变换工具里来实现。最后还有一个问题是,在房间画面上,要求点击某个自定义的部件弹出设定窗口,允许用户来设定空调或者其他设备的值。

总结一下就是:
变换前文件(楼层图SVG文件,房间图SVG文件)
           变换工具
变换后文件
                ・     向房间图SVG文件追加图形ID
                ・     向楼层图SVG文件追加跳转到房间图SVG文件的超级连接
                ・     向房间图SVG文件追加弹出设定窗口的Javascript
                ・     将楼层信息,房间信息,图形ID登陆至后台数据库

STEP:7

最后由于将生成的文件拷贝至WEB工程的虚拟目录下,以备调用。

 这是一个工作流,我建议用Wizard向导来实现,每个Step可以作为Wizard的一个画面。实现方式的话,基本采用Window Application。构架的话,采用面向对象的方式(Boundary,Entity,Control)。比较复杂的是Step。6,自定义部件有好几种,每种部件中追加图形ID的地方都不相同,而且将来还很有可能追加自定义部件。我目前的设想是这样的,每个部件设一个部件种类,由于SVG文件是XML格式的,所以考虑用XPath来记录将来要追加ID的路径。变换的时候根据部件种类去取XPath,随后用XPath来找结点,找到之后追加图形ID。XPath作为Master信息事先存到数据库中。


注1:
 在这里客户是指:程序的维护方,也就是用这个工作流来导入这套系统的人。
 这里的用户是指:通过Web界面来使用这套系统的人,也就是最终用户。
  

posted @ 2006-03-29 21:33 天行健,君子以自强不息;地势坤,君子以厚德载物! 阅读(1774) 评论(5) 编辑

2006年3月1日

SVG + Javascript + ASP.NET + WebService开发楼宇管理系统 - 杂记3(完)

摘要: 接上一篇SVG + Javascript + ASP.NET + WebService开发楼宇管理系统 - 杂记2 第二天他来了之后便问我要进度报告书,我说我不知道怎么写。请你给我一个Template或者给我一个例子让我照着写。B反问我我什么不会写,我答道现在做的项目连个总体的Schedule都没有,现在进行到哪个阶段了我都不知道,你让我怎么写。B听了之后没有响,过一会儿之后他又说上次发给过你一...阅读全文

posted @ 2006-03-01 22:13 天行健,君子以自强不息;地势坤,君子以厚德载物! 阅读(1107) 评论(5) 编辑

2006年2月28日

SVG + Javascript + ASP.NET + WebService开发楼宇管理系统 - 杂记2

摘要: 接上一篇SVG + Javascript + ASP.NET + WebService开发楼宇管理系统 - 杂记1 上个星期四,B说他星期五休息要我星期五去调查一下客户的一个需求是否能实现,并且要让我做程序的空壳子(能够动起来的画面)。我看了一下这个需求觉得并不是很难,能够实现的,我就没有怎么调查,去做那个空壳子了。 星期一B来了之后就问我那个需求调查了怎么样,我和B说我看了一下能够实现,随后就开...阅读全文

posted @ 2006-02-28 20:31 天行健,君子以自强不息;地势坤,君子以厚德载物! 阅读(2136) 评论(16) 编辑

2006年2月26日

SVG + Javascript + ASP.NET + WebService开发楼宇管理系统 - 杂记1

摘要: 由于最近发生的一些事情,在写(三)之前想先写几篇杂记。 想了很久,还是把这些事情作为项目的一部分记录下来吧! 现在的项目是在一月份开始启动的,当初由于人手比较少,只有两个人在干其中一个是PM,本身就要管很多项目再加上开会什么的,实际上真正在干活的就一个人(暂且称她为A)。由于我年初的时候回国探亲,所以并没有从头开始参加这个项目,探亲回来之后才开始加入这个项目的。这个项目所用到的技术比较新,再加之...阅读全文

posted @ 2006-02-26 22:10 天行健,君子以自强不息;地势坤,君子以厚德载物! 阅读(2462) 评论(4) 编辑

2006年2月4日

SVG + Javascript + ASP.NET + WebService开发楼宇管理系统(二)

摘要: SVG + Javascript + ASP.NET + WebService开发楼宇管理系统(二) ————程序架构 接下来的工作就是设计程序的架构了。为了达到那两个要求(1, 尽量减少画面的刷新2, MVC,数据和界面分离),我初步考虑了以下设计方案。简单说明:1, 页面基本分成两个部分, SVG区域和非SVG区域 非SVG区域的程序架构类似于一般的设计, 页面提交à服务器...阅读全文

posted @ 2006-02-04 20:10 天行健,君子以自强不息;地势坤,君子以厚德载物! 阅读(2778) 评论(11) 编辑

2006年2月1日

SVG + Javascript + ASP.NET + WebService开发楼宇管理系统(一)

摘要: SVG + Javascript + ASP.NET + WebService开发楼宇管理系统(一) ————序言 最近碰到这样一个开发,主要是应用于对写字楼的硬件进行管理,用户可以通过WEB界面浏缆楼层的平面图,某个房间空调状态,电源状态;也可以调节空调温度,打开或关闭房间的电源,也可以管理各个楼面各个房间的用户情报。由于并不是针对某一个特定的写字楼,所以这个开发主要分成两部分,一部分是提供给...阅读全文

posted @ 2006-02-01 23:08 天行健,君子以自强不息;地势坤,君子以厚德载物! 阅读(4276) 评论(13) 编辑

导航

<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

公告

昵称:天行健,君子以自强不息;地势坤,君子以厚德载物!
园龄:6年
粉丝:1
关注:0

搜索

 
 

常用链接

随笔档案

最新评论

阅读排行榜

评论排行榜

推荐排行榜