自动激活你的ActiveX控件

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

自从微软对IE6的ActiveX更新 后,每次用IE打开带有ActiveX控件的页面时,必须要进行控件激活操作(点击相关控件),否则该控件将无法正常工作。如果在页面上使用ActiveX控件不多的话,每次多点一下也就算了,不过一旦要频繁操作或者控件很多,每次要做这个重复劳动时,客户肯定会疯掉了。MSDN提供了相应的解决办法 ,可以不需要手工激活,回到以前一样的操作。下面三种办法,关键是把传统页面和控件输出进行分离,技术核心是DHTML和脚本。

方法一(入门篇,解决问题即可):
<!-- ActiveX.html -->
<html>
 <body leftmargin=0 topmargin=0 scroll=no>
   <script src="docwrite.js"></script>
 </body>
</html>

// docwrite.js
document.write('<object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6">');
document.write('<param name="URL" value="example.wmv">');
document.write('<param name="autoStart" value="-1"></object>');


方法二(专业篇):
<!-- ActiveX.html -->
<html>
 <body>
   <div id="DivID">
     <script src="createElementExplicit.js"></script>
 </body>
</html>

// createElementExplicit.js
var myObject = document.createElement('object');
DivID.appendChild(myObject);
myObject.width = "200";
myObject.height = "100";
myObject.classid= "clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6";
myObject.URL = "example.wmv";
myObject.uiMode = "none" ;


方法三(终极篇,适合批量更新):
<!-- ActiveX.html -->
<html>
<head>
  <script src="external_script.js" language="JScript"></script>
</head>

<body>
  <div id="EXAMPLE_DIV_ID">
     This text will be replaced by the control
  </div>
  <script language="JScript">
    CreateControl( "EXAMPLE_DIV_ID",
                   "clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6",
                   "EXAMPLE_OBJECT_ID", "600", "400", "example.wmv",
                   "-1")
  </script>
</body>
</html>

// external_script.js
function CreateControl(DivID, CLSID, ObjectID,
                      WIDTH, HEIGHT, URL, AUTOSTART)
{
 var d = document.getElementById(DivID);
 d.innerHTML =
   '<object classid=' + CLSID + ' id=' + ObjectID +
   ' width=' + WIDTH + ' height=' + HEIGHT +'>
   <param name="URL" value=' + URL + '>
   <param name="autoStart" value=' + AUTOSTART + '/>';
}

ActiveX 控件导入程序 不用工具箱的话,自己手工添加,需要注意一个问题,就是要用Aximp.exe来包装一下ocx控件的类,然后再程序中引用生成的dll就可以了。 aximp [options]{file.dll | file.ocx} The following command generates MediaPlayer.dll and AxMediaPlayer.dll for the Media Player control msdxm.ocx. aximp c:\systemroot\system32\msdxm.ocx 将 ActiveX 控件的 COM 类型库中的类型定义转换为 Windows 窗体控件。 Windows 窗体只能承载 Windows 窗体控件,即从 Control 派生的类。Aximp.exe 生成可承载于 Windows 窗体上的 ActiveX 控件的包装类。这使您得以使用可应用于其他 Windows 窗体控件的同一设计时支持和编程方法论。若要承载 ActiveX 控件,必须生成从 AxHost 派生的包装控件。此包装控件包含基础 ActiveX 控件的一个实例。它知道如何与 ActiveX 控件通信,但它显示为 Windows 窗体控件。这个生成的控件承载 ActiveX 控件并将其属性、方法和事件公开为生成控件的属性、方法和事件。 如果不包装一下直接用,会出现 灾难性 错误。上面已经说明了原因。 在项目中引用生成的ax开头的dll,在窗体代码中增加: 声明一个公有的控件对象: public AxISPICRECLib.AxISPICREC AxISPICREC; 在InitializeComponent()方法内初始化控件: AxISPICREC = new AxISPICRECLib.AxISPICREC();//必须new对象,否则窗体设计器出问题 ((System.ComponentModel.ISupportInitialize)(this.AxISPICREC)).BeginInit();//初始化开始 this.Controls.Add(this.AxISPICREC);//添加控件 ((System.ComponentModel.ISupportInitialize)(this.AxISPICREC)).EndInit(); this.AxISPICREC.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("AxISPICREC.OcxState")));//设计控件状态 如果遇到“正试图在 os 加载程序锁内执行托管代码”这个错误,请设置“调试”--“异常” "----"Managed Debugging Assistants"中勾掉"LoaderLock" 就可以了。 立即下载

相关推荐

基于C#+ASP.NET实现的完成ActiveX 控件IE浏览器自动激活控件源码

基于C#+ASP.NET实现的完成ActiveX 控件IE浏览器自动激活控件源码。

IE ActiveX 插件自动启用脚本

需要为了无专业计算机能力的人操作,直接打开bat脚本就可以直接运行 本篇参考了网上主要的3种写法,根据自身情况,加以融合,并添加若干注释,方便阅读。 格式:新建一个txt文档,然后改成.bat后缀就可以 主体思路为,通过更改注册表,来实现ActiveX 插件的一键启动 @echo off title ★ IE ActiveX 插件启用脚本 ★ set bl=2 ::要修改的注册表路径 set regpath=HKEY_CURRENT_USER\Software\Microsoft\...

qq_40932546的博客 1305

ActiveX不可用时,你的AJAX会出错么?

NULL 博文链接:https://toby941.iteye.com/blog/288314

IE自动激活 ActiveX 控件

http://www.118cy.net/help_1420.html IE自动激活 ActiveX 控件 网页编程 点击次数:849 用户不能与 APPLET、EMBED 或 OBJECT 元素加载的 Microsoft ActiveX控件直接交互。用户激活

skyremember的专栏 2432

开启所有activex等Internet选项的批处理bat

方法(1) REM 添加信任站点ip reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range10" /v ":Range" /t REG_SZ /d 222.222.222.222 /f reg add "HKCU\Software\Microsoft\W

www.coderr.org 5314

对没有标记为安全的activex控件进行初始化和脚本运行 设为启用_通过组合漏洞进行权限提升...

介绍这篇文章主要讲述了由NCC Group研究人员所发现的两个通过COM本地服务进行非法提权的漏洞。第一个漏洞CVE-2019-1405是COM服务中的一个逻辑错误,可让本地普通用户以LOCAL SERVICE身份执行任意命令。第二个漏洞CVE-2019-1322是一个简单的服务配置错误,可让本地SERVICE组中的任何用户重新配置以SYSTEM权限运行的服务(此漏洞也被其他研究人员发现)。当以上...

weixin_39828859的博客 1828

[转]自动激活你的ActiveX控件

自从微软对IE6的ActiveX更新后,每次用IE打开带有ActiveX控件的页面时,必须要进行控件激活操作(点击相关控件),否则该控件将无法正常工作。如果在页面上使用ActiveX控件不多的话,每次多点一下也就算了,不过一旦要频繁操作或者控件很多,每次要做这个重复劳动时,客户肯定会疯掉了。MSDN提供了相应的解决办法,可以不需要手工激活,回到以前一样的操作。下面三种办法,关键是把传统页...

aptl84294的博客 114

【转】自动激活 ActiveX 控件

自动激活 ActiveX 控件 2009-03-17 23:21 原文:http://hi.baidu.com/xiaozhang/blog/item/69a3a7862ae1553666096e0e.html 自从微软对IE6的ActiveX更新后,每次用IE打开带有ActiveX控件的页面时,必须要进行控件激活操作(点击相关控件),否则该控件将无法正常工作。如果在页面上使用ActiveX控...

weixin_30342209的博客 113

自动激活ActiveX控件与签名\发布

自从微软对IE6的ActiveX更新后,每次用IE打开带有ActiveX控件的页面时,必须要进行控件激活操作(点击相关控件),否则该控件将无法正常工作。如果在页面上使用ActiveX控件不多的话,每次多点一下也就算了,不过一旦要频繁操作或者控件很多,每次要做这个重复劳动时,客户肯

火舞天涯 1271

如何解决Flex发布的swf自动激活的问题

众所周知ActiveX控件需要自动激活方可使用,在编写ActiveX控件时只需要加入下面的代码即可。int CPlayerLIVE3_Ctrl::OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message) { // TODO: Add your message handler code here and/or call def

tmeteor的专栏 1318

激活 ActiveX 控件

自从微软对IE6的ActiveX更新后,每次用IE打开带有ActiveX控件的页面时,必须要进行控件激活操作(点击相关控件),否则该控件将无法正常工作。如果在页面上使用ActiveX控件不多的话,每次多点一下也就算了,不过一旦要频繁操作或者控件很多,每次要做这个重复劳动时,客户肯定会疯掉了。MSDN提供了相应的解决办法,可以不需要手工激活,回到以前一样的操作。下面三种办法,关键是把传统页面和控...

weixin_33744141的博客 875

IE浏览器flash控件激活方式介绍 去除虚框

微软因为一项专利侵权案,更改了IE浏览器中的ActiveX控件,只要Windows自动更新安装了微软的KB912945补丁后(或者安装IE7后),凡是一个页面内使用、或标签的活动内容都不会被自动激活,需要用户手动点击,因而flash控件也不能幸免。下图为腾讯首页的一个Flash,各大门户网站只有腾讯的Flash控件没有进行激活处理:目前只能通过修改网页来解决激活问题,微软官方给出的自动激活方法

1655

微软更改了IE处理ActiveX控件的交互方式

今天打开电脑上网,凡是使用了ActiveX控件和Flash的网页都需要先点击激活以后才能交互。据说由于专利问题,Microsoft 更改了IE处理ActiveX控件的交互方式。由于我做的页面也要使用ActiveX控件,给的感觉是:非常不爽!由于需要,必须把ActiveX控件处理成自动激活的,不需要手动点左键激活。遂,到微软的MSDN上查了一下,把原来直接在页面上使用标签改成js的cre

瞎几把学 1717
上一篇: C#中窗体之间传值
下一篇: EXT JS 使用总结
开发者孙小聪
博客等级 码龄18年 74粉丝 95原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值