精华内容
下载资源
问答
  • 修改ActiveX控件相关的安全设置 1.在internet选项中找到安全 > 自定义级别在第二部分的设置中同一个对话框打开浏览器安全 级别自定义设置对话框 1. 2.将ActiveX 控件和插件相关设置中的选项进行如下调整未涉及到的...
  • 修改ActiveX控件相关的安全设置 1. 在internet选项中找到安全 > 自定义级别在第二部分的设置中同一个对话框打开浏览器安全 级别自定义设置对话框 2.将ActiveX 控件和插件相关设置中的选项进行如下调整未涉及到的默认...
  • 修改ActiveX控件图标

    2011-12-06 19:12:54
    //限制控件窗口大小  if (rcBounds.Height()!=16||rcBounds.Width()!=16)  SetControlSize(16,16); //显示位图  //显示位图  CBitmap bitmap;  CBitmap* pOldBitmap;  CDC MemDC;  MemDC.Cre

    在 ActiveXCtrl::OnDraw 中:

     

    //限制控件窗口大小
     if   (rcBounds.Height()!=16||rcBounds.Width()!=16)
      SetControlSize(16,16); //显示位图

     //显示位图
     CBitmap bitmap;
     CBitmap* pOldBitmap;
     CDC MemDC;
     MemDC.CreateCompatibleDC(pdc);
     bitmap.LoadBitmap(IDB_ACTIVEX);
     pOldBitmap=MemDC.SelectObject(&bitmap);
     pdc->BitBlt(0,0,16,16,&MemDC,0,0,SRCCOPY);
     MemDC.SelectObject(pOldBitmap);

     

    将“IDB_ACTIVEX”换成应用程序的ID。

    展开全文
  • 修改activeX控件的uuid

    千次阅读 2014-08-25 14:45:15
    在开发新的activeX控件时,如果直接建立新工程,然后一个个方法、事件挨个添加会比较麻烦,但又不能直接在原来的基础上更改。所以就要修改控件的uuid,与之前的控件区别开来。下面介绍一下自己的做法,不懂什么原理...

    公司里的大部分工作都是在原来的基础上进行的,难免会复用公司以往积累的代码。在开发新的activeX控件时,如果直接建立新工程,然后一个个方法、事件挨个添加会比较麻烦,但又不能直接在原来的基础上更改。所以就要修改控件的uuid,与之前的控件区别开来。下面介绍一下自己的做法,不懂什么原理。(情况不同可能会产生不同的错误)。但应该是可行的,有待大家多试验验证。

    首先,为防止微软狗逼他他妈绕,我们考虑将所有的id都进行替换,所以就不能只产生一个guid将某一个替换。我们可以选择建立一个ocx控件的工程,建完之后,就生成了我们所需要的所有的uuid。总共生成了一下5个(暂时不清楚他们之间是否有关系,渴望得到高手指点):


    第一个比较重要也很特殊:(具体不知道是干什么的,求大牛指点啊)

    1、在XXXXPropPage.cpp中有一个:

    // 初始化类工厂和 guid
    IMPLEMENT_OLECREATE_EX(Cocxuuidtest1PropPage, "OCXUUIDTEST1.ocxuuidtest1PropPage.1",
    0x9630859b, 0x729b, 0x4952, 0x8a, 0x3c, 0xa9, 0x9b, 0xe4, 0x7d, 0xe3, 0xd6)

    这一个在下面的注册函数里会用到,也就是调用regsvr32  XXX.ocx来向系统注册该ocx时会用到,在整个工程中就出现了一次,换上就行了。


    其余还有四个,都出现在XXXX.idl中,但是不止出现在XXXX.idl中,在XXXXidl.h中,XXXX.cpp中,XXXX_i.c中(这个文件不知干嘛的)等等。不用管那么多,反正用全部搜索然后挨个替换就好。

    2、[ uuid(4CEF3CC2-9DDD-4183-A691-80E9659DD5CE), version(1.0),
      helpfile("VideoPlayer.hlp"),
      helpstring("VideoPlayer ActiveX 控件模块"),
      control ]

    3、 [ uuid(23E5AEF8-E535-4406-B461-19FF56EE129C),
            helpstring("VideoPlayer Control 的调度接口")]


    3、 [ uuid(0C17E448-AEA8-47A2-90E8-924101FDFD76),
          helpstring("VideoPlayer Control 的事件接口") ]


    4、 [ uuid(9592C6BA-E815-46EF-BB26-61B7E555DD73),
     helpstring("VideoPlayer Control"), control ]

    将老项目中的的uuid,用新项目中对应的一一替换,只替换uuid,不要加进去工程名。注意形式,有0xXXXX的形式,搜索时只搜索每个uuid的前八位就好。


    替换好之后,工程名字可以更改一下,更多的内容,大家再去探索,本人是初级菜鸟,做的不对的请大家不吝赐教。




    展开全文
  • 修改ActiveX控件的uuid

    千次阅读 2012-11-22 11:04:31
    修改uuid,除了修改.idl文件中的如下部分: // CScreenGrabCtrl 的类信息  [ uuid(7A98F00A-ACD9-475E-9A32-DDE27F4113C4),  helpstring("ScreenGrab Control"), control ]  coclass ScreenGrab  {  ...

    修改uuid,除了修改.idl文件中的如下部分:
    //  CScreenGrabCtrl 的类信息
     [ uuid(7A98F00A-ACD9-475E-9A32-DDE27F4113C4),
       helpstring("ScreenGrab Control"), control ]
     coclass ScreenGrab
     {
      [default] dispinterface _DScreenGrab;
      [default, source] dispinterface _DScreenGrabEvents;
     };
    另外一个地方,就是...Ctrl.cpp中的如下部分:
    // 初始化类工厂和 guid
    IMPLEMENT_OLECREATE_EX(CScreenGrabCtrl, "SCREENGRAB.ScreenGrabCtrl.1",
     0x7a98f00a, 0xacd9, 0x475e, 0x9a, 0x32, 0xdd, 0xe2, 0x7f, 0x41, 0x13, 0xc4)
    这地方也要修改保持一致,不然控件会加载失败,另外在开发 MFC ActiveX 的过程中发现有时候编译错误会给人造成误导,可能是加载了某个头文件导致的,也可能是代码本身问题,也可能是手动修改uuid导致的,至今有一个问题还没搞明白:vs 2010中使用CImage,我鼓捣半天都无法识别CImage,在vs2005则可以,哪位大侠给指点一下。

    展开全文
  • 用C#编写ActiveX控件,开发浏览器控件,注册ActiveX 控件用C#编写ActiveX控件 开发浏览器控件这是本控件开发完成后的一...ActiveX控件大多是使用C++来开发的,而我对他们并不熟悉,因此考虑使用熟悉的C#编写ActiveX...

    用C#编写ActiveX控件,开发浏览器控件,注册ActiveX 控件
    用C#编写ActiveX控件


    开发浏览器控件这是本控件开发完成后的一个简单应用。我们可以利用它以本地文件夹为单位来批量更新服务器的文件。多线程文件夹上传实现
    最近做一个Web项目,需要自己编写一个ActiveX控件。ActiveX控件大多是使用C++来开发的,而我对他们并不熟悉,因此考虑使用熟悉的C#编写ActiveX控件。 ActiveX 控件注册

      首先,建立一个Windows控件库 项目 My_HtmlControl,并拖入一个textBox控件,此时编译项目,可以生成My_HtmlControl.dll。将此dll拷贝到IIS的虚拟根目录下,然后建立一个aa.htm的文件,html代码如下:
    <body>
    <object classid="http://localhost/My_HtmlControl.dll#My_HtmlControl.UserControl1" Width="184" Height="96">
    </object>
    </body>
    在IE地址栏中输入以下地址:http://localhost/aa.htm,出现界面:可见textBox控件文本框 控件已经成功在页面上显示了。OK,我们已经完成了第一步。
      但是问题到这里还没有解决。不相信?你可以试试在另外一台机器上测试,注意需要修改对应的html代码和URL地址。你可以看到这个在原来显示控件的地方是一个红色的叉,或者还会弹出一个对话框,表示这个控件没有任何权限。出现这个结果是微软的默认设置造成的,作者必须在控件所在的控件的 AssemblyInfo.cs/vb 中执行一个安全声明,声明这个控件必须使用赋予的权限,才可以显示出界面。
    在AssemblyInfo.cs中using System.Security;命名空间,并添加一句:
    [assembly : AllowPartiallyTrustedCallers()]
      注册ActiveX 控件现在重新编译,并且替换以前的dll,界面又可以显示出来了。
      需要提醒的是,到现在为止,我们编写的还不是真正的ActiveX控件。这个控件到现在为止,还只是能够实现自身的显示,并且不能实现更多的功能,比如实现与脚本的交互或者操作客户端的注册表或者磁盘。这是由于.Net Framework的安全模型所限制的。如果我们希望这个控件突破.Net Framework安全模型的限制,实现与脚本的交互或者操作客户端的注册表或者磁盘的话,必须要让它成为真正的ActiveX控件。下面,我们把刚才的控件变成真正的ActiveX控件。
      首先使用 工具—〉创建GUID 生成一个GUID,

    并修改UserControl1.cs文件。首先using System.Runtime.InteropServices;命名空间,并在public class UserControl1 : System.Windows.Forms.UserControl前面加入一条语句类标记:[Guid("93210714-D354-4e64-96A7-2DA3BE0E16BC")]
      注意Guid中的字符串,就是你生成的Guid字符串。它是你所生成的ActiveX控件的唯一标识符。然后修改项目属性,打开项目属性面板->配置属性->生成,将最后一项“为Com Interop注册”,我们唯一需要修改的是将其值改为True。

     重新编译。我们使用 工具—〉OLE/COM对象查看器 查看,展开.NET Category 找到My_HtmlControl.UserControl1  可以看到,我们写的My_HtmlControl.UserControl1已经被正确识别为COM组件。现在,我们已经可以像使用其它ActiveX控件一样在网页中显示了。在My_HtmlControl.UserControl1点击鼠标右键,选择Copy HTML <object> Tag to Clipboard,可以将代码拷入剪贴板。
      现在,我们改写aa.htm,html代码如下:
    <body>
    <object id="My_HtmlControl" classid="clsid:93210714-D354-4E64-96A7-2DA3BE0E16BC"></object>
    </body>

      使用IE查看,我们的控件又可以在网页中显示了。不过,这个时候它已经不再是以前的.net WinForm控件了,而是货真价实的ActiveX控件了。
      不过,编写ActiveX控件的任务还没有完成。我们还没有实现脚本互动或者读写I/O,也没有实现ActiveX控件的自动分发。下面尝试实现和JS的交互:(在UserControl1.cs中添加)
    public void ShowMessage(string msg)
    {
     if(msg != null)
     {
      MessageBox.Show(msg);
     }
    }
    重新编译 修改html代码:添加
    <input type="button" οnclick='My_HtmlControl.ShowMessage('Hello World!')' value='Click'>
    访问我们的html页,就是提示不安全信息。
      单击确定之后,我们发现JS报错。根据提示,我们判断可以通过修改IE的设置使控件运行。打开IE的 工具->Internet选项->安全->本地Intranet->自定义级别->对没有标记为安全的ActiveX控件进行初始化和运行,将其值设为启用。我们刷新页面,现在终于可以正确运行了。为什么会报错呢???
    这是因为我们必须要实现IObjectSafety接口,把ActiveX控件标记为安全的ActiveX控件。
    首先我们自己用C#实现这个接口:(在UserControl1.cs中添加)
    public void GetInterfacceSafyOptions(Int32 riid, out Int32 pdwSupportedOptions, out Int32 pdwEnabledOptions)
    {
    // TOD 添加 WebCamControl.GetInterfacceSafyOptions 实现
    pdwSupportedOptions = 1;
    pdwEnabledOptions = 2;
    }
    public void SetInterfaceSafetyOptions(Int32 riid, Int32 dwOptionsSetMask, Int32 dwEnabledOptions)
    {
    // TOD 添加 WebCamControl.SetInterfaceSafetyOptions 实现
    }
    标记Activex控件为脚本安全1.见Designing Secure ActiveX Controls,这种方法主要适用于ATL Activex控件,最好还是用C++来实现的,相对来说比较麻烦;

    2.见Marking Business Objects as Safe for Scripting,选用这种方法,则非常简单了,只需要写入两个注册表项就可以了,如下:

    [HKEY_CLASSES_ROOT\CLSID\<MyActiveXGUID>\Implemented
    Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
    [HKEY_CLASSES_ROOT\CLSID\<MyActiveXGUID>\Implemented
    Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]
    通常ActiveX控件在开发并注册后,一旦在网页中运行,IE并不认为这是一个脚本安全的,会弹出一个IE提示窗口:"An ActiveX control on this page might be unsafe to interact with other parts of the page.Do you want to allow this interaction?"
     重新编译,然后将IE里面的设置改回来在注册表里添加如上两项。现在,我们发现,和JS的交互已经没有问题了。
      这样,一个最基本的ActiveX控件已经写好了。你可以在这个控件的基础上增加任何你需要的功能。到这里,编写控件的任务已经完成了,我们的下一个目标就是发布它。
      首先,我们建立一个windows安装项目,在解决方案中添加新项目【安装项目】

    ,并将ActiveX控件的主输出添加到项目输出中

    。然后,改动ActiveX控件的主输出文件,将其Register属性改为vsdrpCOM.
    改动项目属性,将引导程序更改为 Web引导程序。很遗憾的是,在 Web引导程序设置 中的安装文件夹URL中必须使用绝对路径,不能使用相对路径。这意味着生成安装程序的时候就必须确定路径,不是很方便。在示例中,我使用了localhost,在发布中可以改为实际的域名。
       现在我们生成安装程序,并把相应得程序拷贝到正确的目录中(本例中为默认网站目录下的ActiveX文件夹中)。我们可以直接执行Setup.Exe文件,以验证安装文件的正确性。在我的机器上正确执行了,成功了!

    <object id="My_HtmlControl" classid="clsid:93210714-D354-4E64-96A7-2DA3BE0E16BC" Width="184" Height="96" codebase="ActiveX/Setup.Exe">
    </object>
    codebase="ActiveX/Setup.Exe"
      注意,我们在object块中加入了codebase属性,这就是制定的下载控件的位置,可以使用相对路径。别忙,我们现在还不能正确请求这个页面,因为我们还没有对我们的控件进行签名。签名可以采用两种方式,一种是在上面生成安装程序的时候签名,另一种是使用sn.exe签名。推荐大家使用后者,因为可以提供更多选项。本人很懒,就不多写了,大家可以参考csdn上的文章《发布ActiveX》。先给给大家提个醒,在申请证书的时候选择 高级证书申请。
    检查ActiveXObject是否可用,然后引导用户下载并安装,有朋友问怎么自动下载并安装,个人认为这种做法不太合适,毕竟ActiveX对用户来说是存在风险的,所以我们必须要重视用户的知情权哦。
    var str1 = new Array();
    try
    {
    var axObj=new ActiveXObject("My_HtmlControl.UserControl1d");
    }catch(e){
    str1.push("<span class=\"red\"><a style=\"color:#f00;\" href=\"/ActiveX/Setup.Exe\">请点此安装控件后刷新</a></span>");
    document.write(str1.join(""));
    }
    alert(DetActiveX());
    // 检测系统是否禁用ActiveX
    function DetActiveX()
    {
    var kXmlHttp = null;
    try
    {/*非微软IE支持的xmlhttp对象*/
    if (typeof XMLHttpRequest != "undefined")
    {
    kXmlHttp = new XMLHttpRequest();
    return true;
    }
    else/*微软IE支持的xmlhttp对象*/
    {
    var MSie = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0",
    "MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
    for (i in MSie)
    {
    kXmlHttp = new ActiveXObject(MSie[i]);
    return true;
    }
    }
    }catch(e){}

    return false;
    }
    针对网友的要求,完善了一下本文的内容
    如下在安装项目上进行设置即可,在安装软件时注册该组件在注册表中的注册等操作!如下图:

     


    对安装过程中的所有界面和安装流程控制都可以定义了。还有一点就是因为是ActiveX所有,安全认证很关键。他们和淘宝等网站上的插件是一样的。如果想要被通用那么需要认证。建立在信任基础上让客户端安装应该是最简单的解决办法。

    转载于:https://www.cnblogs.com/blogpro/p/11340578.html

    展开全文
  • 这是本控件开发完成后的一个...ActiveX控件大多是使用C++来开发的,而我对他们并不熟悉,因此考虑使用熟悉的C#编写ActiveX控件。 ActiveX 控件注册 首先,建立一个Windows控件库 项目 My_HtmlControl,并拖入一个text
  • ActiveX控件

    千次阅读 2017-06-22 09:57:49
    ActiveX控件,简单的说,它就是IE浏览器的插件,例如IE的Flash播放器就是一个ActiveX控件。ActiveX存在明显的安全问题,因为它其实也是一种程序,如果你安装了某个ActiveX控件,那这个控件就有权限在你电脑上做很多...
  • 允许运行ACTIVEX控件,双击运行修改
  • 似乎 MATLAB 修改ActiveX 方法的签名,以便最初通过引用传递的变量包含在函数的输出中。 例如: o 对 GetNumHWUnits 方法的 Visual Basic 调用是: MG17System1.GetNumHWUnits USB_NANOTRAK, lngNumNanoTraks ...
  • 2.开发ActiveX控件调用封装后的Dll,使用串口通信来对卡进行读写。3.打包并发布ActiveX控件。4. 使用ActiveX控件。思路1中封装代码有2个类SerialInterfaceHelper,串口通信的帮助类,MifareOneHelpe...
  • 1、ActiveX控件部分(JS到ActiveX控件) 继续上一篇博客中新建的项目,找到DActiveXDemo,右键添加——属性 添加第一个参数,用来传递字符串,具体如下 可以看到在ActiveXDemoCtrl.h文件中创建了一个变量和一...
  • ActiveX 控件

    2017-08-15 14:09:00
    一般读成:ActiveX Ctronl,译成:ActiveX控制,ActiveX控件。即可用于桌面也可用于网络,是封装、跨平台(兼容)与重用技术的延伸。封装与重用技术大概经历了以下几个历史阶段: 明码复用:就是写的...
  • IE安全选项的注册表键值 通过Total Uninstall 5的帮助,一次一次对比快照总结出IE安全选项...除“ActiveX 控件和插件”以外所有值都是安全基本为低时默认的。“ActiveX 控件和插件”因为我自己的需要,都改成了启用。
  • 1、什么是ActiveX控件? ----自己百度一下。 2、ActiveXkon
  • 修改注册表,让它允许运行ActiveX控件,对于要经常用到.CAB的很有用哦,
  • ActiveX控件实现

    千次阅读 2013-12-10 21:21:29
    ActiveX控件实现 本章目标: 完成本章学习后,您将能够: Ø 了解什么是ActiveX控件 Ø 掌握如何编写基于MFC的ActiveX控件 Ø 掌握如何测试ActiveX控件 Ø 掌握如何测试ActiveX控件 Ø 了解...
  • excel中的activex控件与表单控件的复选框 链接单元使用表单控件的复选框时,可以用复选框控制一个单元格变化显示3……这个需要用代码实现,不过,我觉得楼主说的【复选框】其实是【选项按钮】 如图所示,分别是表单...
  • 1. 创建ActiveX控件 以管理员身份运行VS2010(这里注意,一定要确保当前处于管理员运行状态,否则后续注册控件的时候会有问题),新建MFC ActiveX项目 下一步,“运行时许可证”不用勾选,下一步,勾选“在插入...
  • 激活 ActiveX 控件

    2019-07-02 23:27:09
    自从微软对IE6的ActiveX更新后,每次用IE打开带有ActiveX控件的页面时,必须要进行控件激活操作(点击相关控件),否则该控件将无法正常工作。如果在页面上使用ActiveX控件不多的话,每次多点一下也就算了,不过一旦...
  • C#开发ActiveX控件及控件的发布,很详细,自己整理的,和网上的差不多,但是自己根据操作工程中遇到的问题,修改了一下。有图有真相
  • BtPrinterList ActiveX控件

    2005-12-29 10:05:56
    BtPrinterList ActiveX控件 允许用户通过右键菜单修改打印机设置。例如,如果你把BtPrinterList添加到Visual Basic窗体中,而且设置为把视觉属性设置为真时,应用程序的用户可以改变默认打印机选择一个...
  • C++ ActiveX控件

    2018-08-24 09:23:00
    ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。这个容器包括WEB网页,应用程序窗体等。。。 ActiveX控件的后缀名是OCX或者DLL。一般是以OCX和...
  • ActiveX控件开发

    千次阅读 2014-02-28 09:35:38
    前言 ...通常ActiveX控件都是用C++或VB语言开发,本文介绍另一种方式,在.NET Framework平台上,使用C#语言开发ActiveX控件。 虽然本文通篇都在讲如何使用C#语言开发ActiveX控件,但我并不极力推荐使
  • ActiveX控件使用总结

    2021-06-03 09:28:30
    开发环境:vs2015 上网找了很多关于这方面的...ActiveX控件的基本操作方法以及如何在VS2010下使用控件 https://blog.csdn.net/u014028070/article/details/38424611 c++ ActiveX基础1:这个讲了如何提供外部接口调用 ...
  • 今天做项目时,遇到一个问题,需要将一个控件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,106
精华内容 7,642
关键字:

修改activex控件