描述:
本帖最后由 steedhorse 于 2010-11-10 11:24:51 编辑
我现在需要一个页面中使用RDP Client控件,页面里是这样写的:<object language="vbscript" ID="MsRdpClient"
/> CLASSID="CLSID:7584c670-2274-4efb-b00b-d6aaba6d3850"
CODEBASE="<s:url value='/jsp/selfservice/msrdp.cab#version=5,2,3790,0' />"
width="100" height="100">
</object>
现在的问题是,访问页面之后,注册表里HKEY_CLASSES_ROOT\CLSID下面确实会多出一个“{7584c670-2274-4efb-b00b-d6aaba6d3850}”项,其InprocServer32子键指向:“C:\Windows\system32\Windows Download Files\msrdp.ocx”。
但打开C:\Windows\system32\Windows Download Files目录看,里面却只多了一个名字叫“{6A6F4B83-45C5-4ca9-BDD9-0D81C12295E4}”的文件(注意这个ID跟上面的不一样,但却跟我个人机器上默认安装的RDP控件的CLSID一致,有点怪)。
结果页面中的控件当然就显示不出来。
大家有什么建议没?
解决方案1:
1、做成cab包时,要把ocx与打包程序放在一个目录。
2、控件安装成功,C:\Windows\system32\Windows Download Files会有一个控件名字的文件,
显示的不是classid名字,否则,就是控件没安装成功。
3、控件的安装目录,可以在ini文件设置。
4、这个也有可能跟浏览器有关的,以及安全设置。
CMD dir 要全部显示,包括所有的隐藏文件和文件夹
解决方案3: 如果是开发机环境,从 CMD 进入 C:\Windows\system32\Windows Download Files看有没有多余的 冲突文件夹,如果有的话删掉。
搜索注册表,删除和你控件相关的 CLISD 和DLL 记录,重新来过一遍。
ID 可能不唯一。里边应该是有两个id,一个classid,另外一个IID。确保唯一?
解决方案5:一般cab包里面的DLL安装都指向11(system32目录下)...如果你的也是..检查下system32目录下是否有你cab里面的DLL,如果没有..说明没有安装成功...即使在Windows Download Files里面有也没用,这个只是说明你下载下来了》。。
解决方案6:cab包是否打包好?还有...依赖的DLL都带上了吗?
解决方案7: 实现同样功能的一个控件有两个ID?是不是覆盖了?
没碰到过,猜一猜……
CODEBASE应该指定的是DLL吧
解决方案9: 这么多星星的也提问
我围观哈
嘿嘿 同求答案
那应该说明安装成功了,可能是缺少相关联的DLL文件