`

Activex控件在IE中也可以不显示安全提示

阅读更多

转csdn网友shepherds()

在classview下,向目录的第一个.h文件(即App启动头文件)中加入以下内容:

  1. //创建Component Categories中的初始化安全和脚本安全项   
  2. HRESULT  CreateComponentCategory(CATID catid,  WCHAR * catDescription);  
  3. //在CLSID中创建与Component Categories中初始化安全和脚本安全项中相对应的implemented Categories项   
  4. HRESULT  RegisterCLSIDInCategory(REFCLSID clsid, CATID catid);  
  5. //注销与CLSID中的相应implemented Categories项,一般用不到,因为其它程序可能也会用到这此项   
  6. HRESULT  UnRegisterCLSIDInCategory(REFCLSID clsid, CATID catid);  
  7.   
  8. extern   const  GUID CDECL _tlid;  
  9. extern   const  GUID CDECL CLSID_SafeItem;  
  10.   
  11. extern   const   WORD  _wVerMajor;  
  12. extern   const   WORD  _wVerMinor;  
  13.   
  14. 在对就的.cpp文件中加入以下内容,如果原来程序中已经有的,只改动其中的多余部分即可:  
  15.   
  16. //设置控件与注册表相关的类型库ID,后面跟有version(1.0)字样,从本工程的.idl文件中获取   
  17. const  GUID CDECL BASED_CODE _tlid =  
  18. { 0xB926A326, 0xBE91, 0x4337, { 0xA1, 0xDC, 0x76, 0x1B, 0x73, 0x15, 0x6B, 0x23 } };  
  19. //控件在注册表中的CLSID,后面跟有control字样,从本工程的.idl文件中获取   
  20. const  GUID CDECL CLSID_SafeItem =  
  21. { 0xAF546E3F, 0xB5B8, 0x42D6, {0xBB, 0x74, 0x84, 0xB7, 0x25, 0xC0, 0x38, 0x4D}};  
  22.   
  23. const   WORD  _wVerMajor = 1;  
  24. const   WORD  _wVerMinor = 0;  
  25.   
  26. STDAPI DllRegisterServer(void )  
  27. {  
  28. HRESULT  hr;  
  29.   
  30. AFX_MANAGE_STATE(_afxModuleAddrThis);  
  31.   
  32. if  (!AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid))  
  33. return  ResultFromScode(SELFREG_E_TYPELIB);  
  34.   
  35. if  (!COleObjectFactoryEx::UpdateRegistryAll(TRUE))  
  36. return  ResultFromScode(SELFREG_E_CLASS);  
  37. //创建脚本安全“补充”项,非CLSID中   
  38. hr = CreateComponentCategory(CATID_SafeForScripting, L"Controls safely scriptable!" );  
  39. if  (FAILED(hr))  
  40. return  hr;  
  41. //创建初始化安全“补充”项,非CLSID中   
  42. hr = CreateComponentCategory(CATID_SafeForInitializing, L"Controls safely initializable from persistent data!" );  
  43. if  (FAILED(hr))  
  44. return  hr;  
  45. //设置控件CLSID中补充项的脚本安全项,与“补充”项中的脚本安全项对应   
  46. hr = RegisterCLSIDInCategory(CLSID_SafeItem, CATID_SafeForScripting);  
  47. if  (FAILED(hr))  
  48. return  hr;  
  49. //设置控件CLSID中补充项的初始化安全项,与“补充”项中的初始化安全项对应   
  50. hr = RegisterCLSIDInCategory(CLSID_SafeItem, CATID_SafeForInitializing);  
  51. if  (FAILED(hr))  
  52. return  hr;  
  53.   
  54. return  NOERROR;  
  55. }  
  56.   
  57.    
  58.   
  59. // DllUnregisterServer - Removes entries from the system registry   
  60.   
  61. STDAPI DllUnregisterServer(void )  
  62. {  
  63. //HRESULT hr;   
  64. AFX_MANAGE_STATE(_afxModuleAddrThis);  
  65.   
  66. if  (!AfxOleUnregisterTypeLib(_tlid, _wVerMajor, _wVerMinor))  
  67. return  ResultFromScode(SELFREG_E_TYPELIB);  
  68.   
  69. if  (!COleObjectFactoryEx::UpdateRegistryAll(FALSE))  
  70. return  ResultFromScode(SELFREG_E_CLASS);  
  71.   
  72. //hr=UnRegisterCLSIDInCategory(CLSID_SafeItem, CATID_SafeForInitializing);   
  73. //if (FAILED(hr))   
  74. //return hr;   
  75. //hr=UnRegisterCLSIDInCategory(CLSID_SafeItem, CATID_SafeForScripting);   
  76. //if (FAILED(hr))   
  77. //return hr;   
  78.   
  79. return  NOERROR;  
  80. }  
  81.   
  82. HRESULT  CreateComponentCategory(CATID catid,  WCHAR * catDescription)  
  83. {  
  84. ICatRegister* pcr = NULL ;  
  85. HRESULT  hr = S_OK ;  
  86.   
  87. hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,   
  88. NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void **)&pcr);  
  89. if  (FAILED(hr))  
  90. return  hr;  
  91.   
  92. // Make sure the HKCR\Component Categories\{..catid...}   
  93. // key is registered.   
  94. CATEGORYINFO catinfo;  
  95. catinfo.catid = catid;  
  96. catinfo.lcid = 0x0409 ; // english   
  97.   
  98. // Make sure the provided description is not too long.   
  99. // Only copy the first 127 characters if it is.   
  100. int  len = wcslen(catDescription);  
  101. if  (len>127)  
  102. len = 127;  
  103. wcsncpy(catinfo.szDescription, catDescription, len);  
  104. // Make sure the description is null terminated.   
  105. catinfo.szDescription[len] = '\0' ;  
  106.   
  107. hr = pcr->RegisterCategories(1, &catinfo);  
  108. pcr->Release();  
  109.   
  110. return  hr;  
  111. }  
  112.   
  113. HRESULT  RegisterCLSIDInCategory(REFCLSID clsid, CATID catid)  
  114. {  
  115. // Register your component categories information.   
  116. ICatRegister* pcr = NULL ;  
  117. HRESULT  hr = S_OK ;  
  118. hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,   
  119. NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void **)&pcr);  
  120. if  (SUCCEEDED(hr))  
  121. {  
  122. // Register this category as being "implemented" by the class.   
  123. CATID rgcatid[1] ;  
  124. rgcatid[0] = catid;  
  125. hr = pcr->RegisterClassImplCategories(clsid, 1, rgcatid);  
  126.   
  127. if  (FAILED(hr))  
  128. return  hr;  
  129. }  
  130. if  (pcr != NULL)  
  131. pcr->Release();  
  132. return  hr;  
  133. }  
  134.   
  135.   
  136. HRESULT  UnRegisterCLSIDInCategory(REFCLSID clsid, CATID catid)  
  137. {  
  138. ICatRegister* pcr = NULL ;  
  139. HRESULT  hr = S_OK ;  
  140.   
  141. hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,   
  142. NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void **)&pcr);  
  143. if  (SUCCEEDED(hr))  
  144. {  
  145. // Unregister this category as being "implemented" by the class.   
  146. CATID rgcatid[1] ;  
  147. rgcatid[0] = catid;  
  148. hr = pcr->UnRegisterClassImplCategories(clsid, 1, rgcatid);  
  149. }  
  150.   
  151. if  (pcr != NULL)  
  152. pcr->Release();  
  153.   
  154. return  hr;  
  155. }  


另外
1 在HTML中写<object>标签时,把object的写法放在一个.js文件里,用document.write输出,这样不会提示激活!
  1.  //myactivex.js  
  2. document.write("< object   name = 'ActiveXName1'   id = 'ActiveXName1'   classid = '................' > ");  
  3. ...  
  4. document.write("< param... ");  //如果有参数的话  
  5. ...  
  6. document.write("</ object > ");  
  7. ...  

2 获取事件可以用
  1. < SCRIPT   LANGUAGE = "JavaScript"   for = "ActiveXName1"   EVENT = "OnMyClick" >   
  2.     alert(arguments.length);// arguments 这里是取参数  
  3. </ SCRIPT >  

分享到:
评论

相关推荐

    去掉IE提示:internet explorer 已限制此网页运行脚本或Activex控件

    去掉IE提示:internet explorer 已限制此网页运行脚本或Activex控件

    解决ocx控件在ie中加载不上的问题

    html版 需要用户用ie打开,然后允许activeX的运行就行了,这里面会吧“OCX控件强行注册+可信任站点添加+可信任站点ActiveX安全设置启用+收藏夹”全都做了,收藏夹有提示是否进行收藏 bat+reg版 考虑到用户电脑使用...

    activex控件

    自己写的activex控件总是提示"在此页上的activex控件和本页上其他部分的交互可能不安全,你想允许这种交互吗?" . 比较烦人,而且提示完之后ie就死了. 在网上搜了好久终于找到了解决办法,就是网上说的比较多的那种...

    JavaScript调用Activex控件的事件的实现方法

    况且在VS2008中,“设置选定内容格式化”总是提示:“未能完成该操作”. 于是我想用另一种方式来替代这种书写,最起码,可以把他放到一个单独的js文件中。 代码如下: vbscript实现的很奇特 sub activex_onXXXevent()...

    优道pdf保护控件

    ActiveX技术支持无缝嵌入到各类网站和软件产品当中,控件小巧且功能强大,不需要在客户端再安装Adobe Acrobat Reader等其它PDF阅读器就能打开浏览PDF和XPS文件。简单的调用方式可以让您很方便就能做出一款适合常用...

    IE浏览器防黑十大秘技

    在网页中经常使用Java、Java Applet、ActiveX编写的脚本,它们可能会获取你的用户标识、IP地址,乃至口令,甚至会在你的机器上安装某些程序或进行其他操作,因此应对Java、Java小程序脚本、ActiveX控件和插件的使用...

    优道PDF文档版权保护控件

    高强度加密 采用国际权威的高强度加密算法在内存中完成加密解密,远程加密传输,不留任何痕迹; 尊重用户习惯 只保护需要保护的内容,不采用屏蔽键盘鼠标和剪贴板等限制用户正常操作的行为; 技术实力过硬 C++...

    .NET web打印

    1 必须将ie的internet选项的安全设置中对于没有标记为安全的ActiveX控件进行 设置成提示或者启用 否则会报错 导致不可用 2 如果在vs net编辑环境下编辑该页面 它经常自动的给object添加多余的参数 有了这些东西 ...

    大华web端调用监控-ocx插件 64位+32位

    大华视频集成平台OCX插件 64位+32位,目前发现的最新版本。 大华dvr的IE浏览器播放...在IE浏览器的设置中将安全级别调整为自定义,并将 ActiveX控件和插件下面所有项都设置为启用,最后重新打开浏览器就能正常使用了。

    ie8打印不正常问题解决

    提示 “ factory.printing 为空或不是对象”,这种现象是网页缺少安装必要的插件造成不能打印,一般情况下网页会提示安装控件, 如不能安装控件可能由以下原因造成: 1.IE网络等级设置过高,请降到中级或以下进行...

    Visual Graph开发

    2.bin\vg.dll是ActiveX控件,在许多编程语言中使用,使用步骤如下: a)运行bin\registeractivex.bat注册控件到您的计算机,如果失败,以管理员身份运行cmd.exe,然后再运行regsvr32.exe bin\vg.dll注册(请不要把v...

    在线屏幕截图控件 v1.4

    在图形截取后自带有工具条实现对图片的在线标注功能,可以在截取的图形上绘制矩形、椭圆、箭头及输入文字,并可在线或离线保存截取的图片。 控件使用简单、兼容性强,适合在OA系统、信息管理和发布系统、网站后台、...

    VB编程资源大全(控件 窗体1)

    1、竖着切分2、横着切分(18KB) 85,spltrbar.zip SpltrBar.ocx控件主要是用来在程序中切分窗口(15KB) 86,cooltoolsbar.zip CoolToolBar v1.0.0控件类似VC的ToolBar的功能,您也可以在VB中轻松实现拖动...

    VB编程资源大全(控件 窗体2)

    1、竖着切分2、横着切分(18KB) 85,spltrbar.zip SpltrBar.ocx控件主要是用来在程序中切分窗口(15KB) 86,cooltoolsbar.zip CoolToolBar v1.0.0控件类似VC的ToolBar的功能,您也可以在VB中轻松实现拖动...

    Visual C++ 编程资源大全(控件 窗体)

    noform.zip 没有文档类的MDI怎样让MDI程序不需要文档的支持(33KB)&lt;END&gt;&lt;br&gt;98,ROTFONT.zip 用于在窗口中显示任意角度文字的控件(5KB)&lt;END&gt;&lt;br&gt;99,TRAYICON.zip 用于在WIN95的状态栏中显示程序的运行状态(32...

    div圆角兼容ie8

    本地测试有ActiveX控件提示不必在意; 上传到服务器上,用iis调试打开,就不会弹出安全提示

    优道Office文档控件 v2.3

    优道Office文档控件支持通过网页在线编辑和查看Word、Excel、PowerPoint、金山Wps等Office文档,可以在线提交保存到Web服务器当中...支持启用ActiveX技术的IE浏览器和桌面应用程序 浏览时需按照提示安装控件并刷新页面

    获取本地硬盘大小.html

    js代码!修改后,可以获取本地C、D、E、F...盘的大小! ...IE:如果Javascript脚本中报这个错误是因为IE的安全设置不允许运行未标记为安全的activeX控件 更改IE的安全设置,把相应的选项打开即可。

    ExtAspNet_v2.3.2_dll

    -一个典型应用,在Window控件中打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。 -ExtAspNet.Alert.Show("参数错误!", String.Empty, ExtAspNet.ActiveWindow.GetCloseReference());...

Global site tag (gtag.js) - Google Analytics