急,高分求教懂得控件应用的朋友帮个忙, 谢谢了

马达轰鸣 2009-02-23 10:39:50
各位朋友:

大家好,小弟正在做一个在线播放的网站,根据客户的要求,服务器端存放的素材是经过加密的,当客户通过浏览器点击所要播放的文件后,客户端要能够在内存中对素材进行解密并直接在网页中播放,即实现密文的在线播放,我现在是这样解决这个问题的,我做了一个ATL控件(MyAtl.DLL),在控件中定义了一个类,并在类的构造函数中加入了LoadLibrary(newDll.DLL),并将这两个DLL和一个SETUP.INF文件打包成test.CAB文件,SETUP.INF文件的内容如下:
[version]
; version signature (same for both NT and Win95) do not remove
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
MyAtl.dll=MyAtl.dll
newDll.dll=newDll.dll
setup.inf=setup.inf
[install.files]
MyAtl.dll=MyAtl.dll
newDll.dll=newDll.dll
setup.inf=setup.inf
[MyAtl.dll]
clsid={5494768C-F759-4DC0-955C-19019640774C}
file-win32-x86=thiscab
FileVersion=1,0,0,1
DestDir=11
RegisterServer=yes
[newDll.dll]
file-win32-x86=thiscab
DestDir=11
FileVersion=1,0,0,1
RegisterServer=yes
[setup.inf]
file=thiscab
[RegisterFiles]
%11%\MyAtl.dll
; end of INF file
并在页面的HEAD中增加了这些代码,
<OBJECT id=MyAtl align="CENTER" WIDTH=0 HEIGHT=0 codeBase="test.CAB#version=9,0,0,1" classid="CLSID:5494768C-F759-4DC0-955C-19019640774C"></OBJECT>并在客户端修改了安全级别和ACTIVEX的一些选项,可以下载和执行未签名的控件,这个被加载的newDll本身是用来给IE进程挂钩子的,挂钩子的程序本身没有什么问题,那些代码已经使用了多半年了,从来没有什么问题,现在奇怪的是, 我在我的计算机上访问该网页,并点击播放的时候没有任何问题, 不管是视频还是图片都可以正常打开,而别人的计算机访问该网页的时候不能正常播放,我自己做了一个工具来查看指定的进程都加载了哪些DLL, 结果发现我的计算机上的IE一直都加载这MyAtl.DLL和newDll.dll, 而别人的机器再执行了MyATL.DLL后只加载了MyAtl.DLL,而没有加载newDll.dll,随后我在控件中增加了一个方法专门用来加载newDll.dll,并在页面中增加了
<script language="javascript">
function doTest()
{
MyAtl.loadDll();
}
</script> 和<input type="button" value="renjie" id="btnOK" onclick="doTest();"></input>
来调用这个函数以加载newDll.dll, 同样我的机器没有任何问题,而别人的计算机在刚执行完控件后两个DLL后都加载了,
选择打开图片时还能正常显示,显示完图片后newDll.DLL就在IE中找不到了,之后就再也不能播放其他任何文件了,而且FLASH和其他视频在其他计算机上从来都没有打开过,我不知道是什么操作将新加进来的newDll.dll给剔出了,而我自己的计算机为什么就没有问题,这个问题困扰我好几天了我实在找不出我的计算机上的设置和其他计算机有什么不同,所以希望大家能给我出点主意帮我解决问题,再次谢谢大家了,分不够了我再加,谢谢大家
...全文
115 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
马达轰鸣 2009-02-23
  • 打赏
  • 举报
回复
有熟悉的朋友能给我点建议吗
zd3141592654 2009-02-23
  • 打赏
  • 举报
回复
帮顶
马达轰鸣 2009-02-23
  • 打赏
  • 举报
回复
我的newDll.dll是直接打包到test.cab里面的,而且其他计算机在刚执行完MyATl.dll后,IE进程里面也包含了newDll.dll
wanghao3616 2009-02-23
  • 打赏
  • 举报
回复
MyAtl.loadDll();
我怀疑是不是 客户端没有 newDll.dll 这个类包?
可不可以 提示 安装插件的形式 来安装newDll.dll  
大神来了丶 2009-02-23
  • 打赏
  • 举报
回复
学习 不是很清楚 帮顶
zd3141592654 2009-02-23
  • 打赏
  • 举报
回复
是不是页面刷新的时候把MyAtl对象卸载了。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧