object标签在网页中可嵌入ocx外还有什么东西?

GXY2005 2009-07-09 06:13:21
<OBJECT ID="demo" WIDTH=100 HEIGHT=115
CLASSID="clsid:AE6A7F96-43F3-4345-ADBF-21B45B063BDC" CODEBASE="AxMyTest.ocx#version=1,0,0,1">
</OBJECT>
1、比如上面的代码是嵌入ocx控件,我只需要运行一些逻辑不要界面可否嵌入dll呢?
2、还有浏览器插件权限到底有多大,比如在客户端存储文件或利用socket通讯等应该没问题吧?
请大家知道的帮忙回答下这两个问题!
...全文
313 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
makun0624 2009-08-11
  • 打赏
  • 举报
回复
学习 UP`
shalen520 2009-08-11
  • 打赏
  • 举报
回复
1、比如上面的代码是嵌入ocx控件,我只需要运行一些逻辑不要界面可否嵌入dll呢?
看是什么DLL,纯dll是不行的,必须是实现了IDual,IAutomation一类com接口的dll才可以同脚本语言互操作


2、还有浏览器插件权限到底有多大,比如在客户端存储文件或利用socket通讯等应该没问题吧?
你给他多大权限就能多大
mb_1985 2009-08-10
  • 打赏
  • 举报
回复
必须进行浏览器设置,所以算不得一个好东西。搞不好还被杀毒软件给搞掉。
再者有些客户难以接受,怕你给他装的东东会盗取他信息或者引起系统不稳定
YL_Show 2009-08-10
  • 打赏
  • 举报
回复
过来学习。
懦芞 2009-08-10
  • 打赏
  • 举报
回复
jf
benzite 2009-07-18
  • 打赏
  • 举报
回复
都没问题。
asge8900 2009-07-10
  • 打赏
  • 举报
回复
dll没有界面就不显示界面了,
jack_ailly 2009-07-10
  • 打赏
  • 举报
回复
学习
FanG081020 2009-07-10
  • 打赏
  • 举报
回复
这应该都是在客户端嵌入对象吧,现在的浏览器对此的限制越来越多了,似乎很少地方这样用了,除了一些银行和网上支付的网站。
jdbcodbc 2009-07-10
  • 打赏
  • 举报
回复
UP
GXY2005 2009-07-10
  • 打赏
  • 举报
回复
有没实践过这方面的经验的!
GXY2005 2009-07-10
  • 打赏
  • 举报
回复
好这几个问题比较明白了,还有个问题,插件有没执行客户端exe或者安装包等文件的权限?
yechd 2009-07-10
  • 打赏
  • 举报
回复
1、比如上面的代码是嵌入ocx控件,我只需要运行一些逻辑不要界面可否嵌入dll呢?
可以,OCX也可以做成没界面的
2、还有浏览器插件权限到底有多大,比如在客户端存储文件或利用socket通讯等应该没问题吧?
完全没问题,C++语言很强大
我姓区不姓区 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 gxy2005 的回复:]
<OBJECT  ID="demo"  WIDTH=100  HEIGHT=115
    CLASSID="clsid:AE6A7F96-43F3-4345-ADBF-21B45B063BDC"  CODEBASE="AxMyTest.ocx#version=1,0,0,1">
</OBJECT>
1、比如上面的代码是嵌入ocx控件,我只需要运行一些逻辑不要界面可否嵌入dll呢?
2、还有浏览器插件权限到底有多大,比如在客户端存储文件或利用socket通讯等应该没问题吧?
请大家知道的帮忙回答下这两个问题!
[/Quote]
1、dll肯定是可以的
2、object标签中的控件你可以看成是一个c/s程序嵌入网页中,只要它能在网页中正确显示,那么它的权限与它嵌在其它c/s程序中是一样的,客户端存储文件或利用socket通讯都没有问题
叶子 2009-07-10
  • 打赏
  • 举报
回复
浏览器插件权限 和你的浏览器设置有关系。
GXY2005 2009-07-10
  • 打赏
  • 举报
回复
<OBJECT ID="Thing"

CLASSID="CLSID:251726D2-AEE4-40B6-8F11-006307CA1B01"

CODEBASE="thingDemo.CAB#version=1,0,0,0">

</OBJECT>

<SCRIPT LANGUAGE="Javascript">

var guidobj = new ActiveXObject("thingDemo.CAB");

function TEST()

{

guidobj.setGuid();

}

</SCRIPT>
GXY2005 2009-07-10
  • 打赏
  • 举报
回复
object标签用于包含对象,比如图像、音频、视频、Java applets、ActiveX、PDF以及Flash。
---------------------------------------------------------------------------------
那么看来dll是可以的,但脚本调用此dll方法有没人用过?还有插件权限多大还没人说下呢
mengxj85 2009-07-09
  • 打赏
  • 举报
回复
Up
杨哥儿 2009-07-09
  • 打赏
  • 举报
回复
嵌入ocx控件的路越来越窄!
vrhero 2009-07-09
  • 打赏
  • 举报
回复
object标签定义一个嵌入的对象。此元素允许您规定插入HTML文档中的对象的数据和参数,以及可用来显示和操作数据的代码。

object标签用于包含对象,比如图像、音频、视频、Java applets、ActiveX、PDF以及Flash。

object的初衷是取代img和applet元素。不过由于漏洞以及缺乏浏览器支持,这一点并未实现。

浏览器的对象支持有赖于对象类型。不幸的是,主流浏览器都使用不同的代码来加载相同的对象类型。
加载更多回复(2)
很多光盘上的程序,比如电脑迷光盘,开头总有一段动画,用来展现企业品牌和LOGO之用。这个动画是Flash做的,而且嵌入到程序简直做到无缝融合,因为右键点击它也不会有那特有而烦人的Flash右键菜单。 因此将Flash融合到WinForm能够增强程序的多媒体效果和炫丽的观。现在我们就来看看在C#桌面程序如何插入Flash视频,而且去掉烦人的右键菜单。 首先要插入Flash就必须使用Flash控件,在工具栏右键选择“选择项…”,然后在“COM组件”面板下点击“浏览”按钮,在本机电脑C:\WINDOWS\system32\Macromed\Flash\目录里选择Flash8.ocx(也有可能是Flash9F.ocx,版本不同所致),然后点击确定就可以了。但到这里还没有完,因为要使用Flash控件必须注册它。 在CMD里面输入如下: regsvr32 C:\WINDOWS\system32\Macromed\Flash\Flash8.ocx 系统会提示注册成功,这个时侯就可以在VS2008里面使用该控件了! 打开VS2008,新建一个Windows程序,然后把刚才我们选择的Flash控件Shockwave Flash Object拖到窗体,这时窗体会出现一个白色的矩形框,Name属性我们设置为Myflash,在里面可以播放我们需要的swf文件。 注意到该控件主要有几个属性: Name属性,这个是所有对象都会有的。 Menu属性,这个是Flash菜单项,默认值为true,也就是右键的时候会出现完整的Flash菜单,如果设置为False,则只出现最简的菜单(设置与关于)。 Move属性,这个属性是用来指定要播放的Flash文件的。 Playing属性,指定是否装在影片之后马上播放。 Quality属性,设置影片的质量。 Scalemode属性,设置影片的缩放模式。 Visible属性,设置影片控件的可视与否。 接下来我们在窗体放置一个按钮,Text属性设置为LoadSwf。双击添加事件代码如下: OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Flash文件|*.swf"; DialogResult dr = ofd.ShowDialog(); if (dr == DialogResult.OK) { Myflash.Movie = ofd.FileName; Myflash.Play(); } 这样当程序运行的时候点击按钮会要我们选择一个SWF文件,选择好后确定就自动播放了! 当然,我们还可以添加一些按钮,分别为Play,Pause Play按钮的播放功能如下: This.Myflash.Play(); Pause按钮的暂停功能如下: This.Myflash.StopPlay(); 这里就不再啰嗦了,各位园友可以自行去研究一些常用的功能。下面我们主要来讲解如何消去烦人的Flash右键菜单! 消去Flash右键菜单有两种方法(本人愚笨,到目前只发现这两种): 方法一: 这个方法比较复杂,也比较繁琐,主要是用到API函数的调用。代码如下: #region 去掉Flash右键菜单,API函数的声明 private const int GWL_WNDPROC = -4; public delegate IntPtr FlaWndProc(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam); private IntPtr OldWndProc = IntPtr.Zero; private FlaWndProc Wpr = null; [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, FlaWndProc wndProc); [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern IntPtr CallWindowProc(IntPtr wndProc, IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam); private IntPtr FlashWndProc(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam) { if(msg == 516) //516就是对应鼠标的右键,当然你也可以用0X0204右键鼠标的16进制编码 return (IntPtr)0; //什么都不做 return CallWindowProc(OldWndProc, hWnd, msg, wParam, lParam); } #endregion 将以上代码放在窗体声明字段的地方。 注:要调用API函数就必须引用一个命名空间: using System.Runtime.InteropServices; 然后在窗体的载入事件里面添加如下代码: private void Flash_Load(object sender, EventArgs e) { this.Wpr = new FlaWndProc(this.FlashWndProc); this.OldWndProc = SetWindowLong(Myflash.Handle, GWL_WNDPROC, Wpr); //关联flash控件 } 如此则大功告成,看看是不是把Flash右键菜单给去掉了!! 方法二: 这个方法很简单,也很灵活,主要用到继承和重写等面向对象的核心内容。 首先声明一个类,让它去继承AxShockwaveFlashObjects.AxShockwaveFlash,该类是实例化Flash控件生成的类。该类包含各种Flash的事件和属性,在这里我们只对右键菜单的事件感兴趣,因此我们去重写该事件。 类的代码如下: public class FlashRightKey : AxShockwaveFlashObjects.AxShockwaveFlash { //定义一个公共类FlashRightKey(类名自己定义)来继承AxShockwaveFlashObjects.AxShockwaveFlash(在实例化Shockwave Flash Object控件后生成)类 protected override void WndProc(ref Message m) //重载WndProc方法(此方法即消息处理机制) { if (m.Msg == 0X0204) //0×0204即鼠标右键的16进制编码 return; //返回并不输出 else base.WndProc(ref m); //如果不是右键的话则返回正常的信息 } } 类写好了,我们要在Flash控件里面使用它,必须在实例化Flash控件的时候用如下代码(写在Flash.Designer.cs文件相应的地方): private FlashRightKey MyFlash2; this.MyFlash2 = new Namespace.FlashRightKey(); 注:Namespace为工程项目的命名空间。 剩下的就和不用我多说了,大功告成,实现了Flash控件去掉右键菜单。 以上代码在 XP+VS2008+Flash8播放器 调试通过。 本文也只是抛砖引玉,至于如何获取点击事件以及和其他控件的通信则是比较高深一点的知识了,各位朋友互相勉励,想更高深的知识挺进!

62,046

社区成员

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

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

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

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