精华内容
下载资源
问答
  • 驯服ActiveX控件

    2007-07-24 22:25:00
    ActiveX 控件是向前而不是向后兼容的。这就意味着如果你在你的系统中安装了一个较新版本的 OCX,任何你发布给别人的拥有老版本OCX 的应用程序将会发生问题。本文提供一个可重用工具,并用一个示例来简单的演示了一个...

    ActiveX 控件是向前而不是向后兼容的。这就意味着如果你在你的系统中安装了一个较新版本的 OCX,任何你发布给别人的拥有老版本OCX 的应用程序将会发生问题。本文提供一个可重用工具,并用一个示例来简单的演示了一个易于使用的解决该问题的方案。

    你在圣诞节到新年期间过得怎样?我希望你过得轻松愉快。但对于我来说,它是可怕的。因为:在圣诞节前我在我的网站上发布了一个更新了的 Stonefield Database Toolkit (SDT)。每一个下载并安装了它的人在试着运行它时,得到一条 "OLE 类未注册" 错误。圣诞节后的一个星期中,我收到大量的要求支持电话和电子邮件,并不得不提出一个快速方案来解决这些人的问题以防止今后更多的电话。

    是什么造成了这个问题? SDT 主表单使用了一个 TreeView 控件,我在我的系统中安装了一些软件,这也就安装了较新版本的 COMCTL32.OCX,该OCX 文件包含了 TreeView 控件。虽然我没有改变表单上的 TreeView 控件,但如果简单的打开表单并保存它,就会被提示较新版本的 TreeView 控件被写入了表单。当然,很少有其它人在他们的机器上拥有该较新的控件,因此 虽然表单需要一个 TreeView 控件,而且他们也有一个 TreeView 控件,但该控件并不是表单所确切需要的那个控件。这样就发生了上述"OLE 类未注册" 错误。

    难道仅仅是我,或你是否认为这是不能相信的和站不住脚的? 我没有注意到不同版本的 TreeView 控件。我承认如果我在新版本的控件中使用了该控件的旧版本中没有的新的属性或方法,发生这种情况是可能的。但正如我曾提及的那样,我甚至没有动过我的表单。

    我猜想可能是由于我自己在圣诞节前的过失造成了这个危机。毕竟,我在遭遇这种情景前将 VFP 5.0 升级到 5.0a;它带有一个升级了的 COMCTL32.OCX,这样每一个没有升级到 5.0a 的用户在试图使用 SDT时会得到一条 "OLE 类未注册" 错误信息。我在这时的处理是在我的办公室中保持一台电脑中装有 VFP 5.0 (不是 5.0a),并在那台电脑上进行任何关于 SDT 的开发,包括那一个有 TreeView 控件的表单。如果我忘记了并在我的机器上修改了那个表单 . . .
    但是,要知道我从该问题中获得的经验,并没有使我感到好受一点,我的信箱中有成打的电子邮件问题报告。那是导致失败之最后一击; 我不得不考虑一个解决该问题的永久的方案。本文中描述的工具便是结果。

    背景

    首先,让我们看一下问题的原因。如果你以打开表的方式打开一个含有 ActiveX 控件的表单(换句话说就是 USE MYFORM.SCX)并浏览它,你会发现保存在 ActiveX 控件记录中的 OLE 字段中的二进制信息。这些二进制信息看起来包含了一些关于控件的版本特定信息。作为结果 -- 至少 Microsoft 发布的 ActiveX 控件是向前而不是向后兼容的。这就意味着如果我放入一个 2.01 版的 ActiveX 控件到表单中,拥有新版本的 ActiveX 控件(如 2.02 版) 的人们可以打开表单,但那些拥有老版本的(如 2.00 版)人们则不能打开表单。

    让我们进一步查看系统是如何处理 ActiveX 控件的。可能你已经意识到了,简单地复制一个 OCX 文件到某人的硬盘上并不能使他们能使用该文件中的 ActiveX 控件。控件还需要用REGSVR32.EXE (随 VFP 发布的一个该程序的拷贝) 或用VFP 的安装向导注册到你的系统中。使用REGEDIT,我们可以看到ActiveX 控件是在HKEY_CLASSES_ROOT/CLSID 中以类 ID 注册。例如,TreeView 控件注册为HKEY_CLASSES_ ROOT/CLSID/0713E8A2-850A-101B-AFC0-4210102A8DA7。在该键下还有一些子键,最重要的是 ProgID,VersionIndependentProgID 和 InProcServer32。ProgID 包括程序 ID,它可能因版本的不同而不同。例如,在我的系统中,TreeView 子键值是COMCTL.TreeCtrl.1。VersionIndependentProgID 只包含暗示名 (在我的系统中,TreeView 的值是 COMCTL.TreeCtrl),InProcServer32 包含了含有控件的 OCX 的名字和路径。对于几个可能的问题的直接建议是:
    · ActiveX 控件从没有安装到机器上—该控件在注册表中没有入口,且OCX 不存在于驱动器上。解决办法是适当的安装它。
    · OCX 文件复制到了系统中但未注册—文件存在,但注册表中没有入口。解决方法是用 regsvr32.EXE to 注册OCX 中的ActiveX 控件。提示:注册时必须包括文件的扩展名:
    · "regsvr32 myfile.ocx" 而不是"regsvr32 myfile"
    · ActiveX 控件注册了,但不能找到OCX – 它可能已被更名或删除,或用户可能从备份的文件中恢复了注册表而未恢复所有文件。最好的办法是重新安装和注册。
    · 系统中安装的版本与用户应用程序要求的版本不符。解决该问题的一个显而易见的方法是安装控件所要求的版本,这可能并不总是可行的。例如,如果我与我的程序( SDT)一起发布我的 COMCTL32.OCX,这可以解决我的问题,但可能会对你和你的使用 TreeView 的客户带来问题。
    另一个无法预料的问题也可能出现。一些 ActiveX 控件寻找一个可以在开发环境中使用它们的许可(一个保存在注册表中的关键字或你的驱动器上的一个文件)。这是有意义的;它允许你用一个厂商的控件开发和发布应用程序,并在运行时环境中使用它们,以保护厂商利益。这是问题的根原,可是,如果关键字从你的系统中丢失,当你拖动控件到表单时,你会得到一个 "许可未找到" 错误。重新安装并不总能解决该问题。因为我在 CompuServe 和 Universal Thread 上看到的信息,该问题是一个普遍问题。对于与 VFP 一起发布的控件,解决方法是简单的:从 Universal Thread 下载一个叫 FOX.REG 的文件并运行它; 它将在你的系统中注册适当的许可。对于其它第三方控件,重新安装或与你的销售商联系。
    正如你可以看到的一样,许多关于 ActiveX 控件的问题需要重新安装它们。但是,正如我所提及过的,这种方法可能不能解决版本问题。本文后面的部分讨论一种易于实现的方法解决这一讨厌的问题。

    SFActiveX

    我们的方法是在运行时实例化 ActiveX 控件而不是在开发环境中使用它们。这种方法,控件是从用户系统上的已安装的版本中实例化,而不是搜索安装在你的系统中的某一版本的控件。为了使这样做更容易,我创建了一个叫做 SFActiveX 的 ActiveX 载入类。
    SFActiveX 是基于 SFCustom 类的类,我们的 Custom 基类定义在基类类库 SFCTRLS.VCX中。它具有如下表所示的自定义属性。
    SFActiveX 的息定义属性。
    属性 描述
    CClass ActiveX 控件的类名或子类名
    CClassID 对象的类ID
    CLibrary 包含ActiveX 控件子类的类库名
    CNewObjectName 给将要创建的ActiveX 控件的该对象的名字
    cObjectName ActiveX 占位对象名
    cOLEClass 对象的OLE 类
    cClass默认为"OLEControl",因为VFP 的ActiveX控件类包含在其中。但是,如果你想使用ActiveX 控件的子类(我将在本文的稍后,展示至少一个为什么这样做的理由),在该属性中输入类的名字和在cLibrary 中输入包含该类的类库的名字(指定一个扩展名来区别 VCX 和PRG 类库)。
    你可以用一种或两种方法指定要使用的ActiveX 控件:cClassID 或 cOLEClass。如果你指定了一个,保持另一个为空。cClassID 是ActiveX 控件的类ID,cOLEClass 是它的ProgID。对于指定的控件,怎样知道在该属性中输入什么内容呢? 对于cOLEClass,最简单的方法是拖动控件到表单中,然后查看它的 OLEClass 属性。例如,TreeView 控件的OLEClass是 "COMCTL.TreeCtrl" (你可能在你的实例中看到"COMCTL.TreeCtrl.1"; 但是,不要担心这个cOLEClass 中的 ".1")。cClassID 稍难于确定。你需要激活REGEDIT 并搜索控件的OLEClass,然后查看它下面的类 ID。例如,TreeView 控件出现在"{0713E8A2-850A-101B-AFC0-4210102A8DA7}"。当你在 cClassID 属性中输入该值时,不必输入花括号。最好指定cClassID 而不是cOLEClass,因为控件的名字可能因所安装的版本不同而不同 (例如,VFP 5.0a 的 TreeView 控件的 ProgID 是 "COMCTL.TreeCtrl.1",在某些情况下,你要是指定了 "COMCTL.TreeCtrl" 可能会造成问题)。
    一些ActiveX 控件具有可视的外观,而有些没有。对于可视的ActiveX 控件,需要指定控件的位置和大小。可以在表单的Init 代码中设置控件的Top,Left,Width 和Height 属性,但我认为在表单上的ActiveX 所在的位置放置一个与运行时的ActiveX 大小一致的Shape 控件更为直观。该对象是ActiveX 控件的占位对象,有了占位符,你可以方便地调整它的大小,位置和其它相关控件。要告诉SFActiveX 该对象是一个占位对象,在cObjectName 属性中输入它的名字。SFActiveX 将移去该对象并在该位置放置ActiveX 控件。
    SFActiveX 没有许多代码。它的Init 方法调用自定义方法LoadActiveX (执行所有的操作) 除非传递一个.T. 参数告诉它不这样做(提供这个功能使你能够用代码实例化SFActiveX,适当的设置参数,然后手动地调用LoadActiveX 来载入控件)。我不想在这里解释LoadActiveX 方法中的所有代码(你可以自己查看它们),而只是说一下值得注意的东西。
    SFActiveX 很大程序上依赖对Windows 注册表内容的搜索,因为那是用户机器上安装了的ActiveX 控件注册的地方。为了处理注册表,LoadActiveX 另一个在SFREGISTRY.VCX中定义的类 SFRegistry。在这里我们不考虑该类; 可以说它是VFP 自已的注册表处理类 REGISTRY.PRG 的替代物,但使编程接口更简单。
    为了使用SFRegistry,你必须实例化它; 调用一个叫做NEWOBJECT 的过程来执行这一点。NEWOBJECT.PRG 是一个更新版本的NEWOBJ.PRG。LoadActiveX 的第一个任务是指出用户的系统中是否安装了所需的ActiveX 控件,而且如果指定了类 ID 而不是使用的OLE 类。以下代码执行该功能。注意如果你指定了OLE 类且不能找到它,LoadActiveX 添加一个".1" 后缀到类并在放弃前再试。(方法以WITH THIS 开始,因此所有未指明的对象引用是类自已。)
    loRegistry = newobject(SFRegistry, ;
    SFRegistry.vcx, cnHKEY_CLASSES_ROOT)
    if empty(.cOLEClass)
    lcCLSID = iif(left(.cClassID, 1) = {, ;
    .cClassID, { + .cClassID + })
    lcProgID = loRegistry.GetKey(CLSID/ + lcCLSID + ;
    /ProgID)
    llOK = not empty(lcProgID)
    else
    lcProgID = .cOLEClass
    lcCLSID = loRegistry.GetKey(lcProgID + /CLSID)
    if empty(lcCLSID)
    lcProgID = .cOLEClass + .1
    lcCLSID = loRegistry.GetKey(lcProgID + /CLSID)
    endif empty(lcCLSID)
    llOK = not empty(lcCLSID)
    endif empty(.cOLEClass)
    if llOK
    lcOCX = loRegistry.GetKey(CLSID/ + lcCLSID + ;
    /InProcServer32)
    llOK = not empty(lcOCX) and file(lcOCX)
    endif llOK
    在代码结束时,lcProgID 包含OLE 类(ProgID),lcCLSID 包含了类 ID,而且lcOCX 包含了用户系统中的OCX 文件的名字和路径 (在注册表中的InProcServer32 键值中)。如果我们在注册表中找到了要找的东西且OCX 文件存在,llOK 的值为.T.。如果没有,用户将会看到一条错误信息,且该方法将返回.F.
    如果一切就绪,LoadActiveX 检查是否指定了占位对象,如果指定了,保存它的位置和大小并删除它。
    llObject = not empty(.cObjectName)
    if llObject
    lcObject = .cObjectName
    with .Parent.&lcObject
    lnTop = .Top
    lnLeft = .Left
    lnWidth = .Width
    lnHeight = .Height
    endwith
    .Parent.RemoveObject(lcObject)
    endif
    如果指定了类和类库,LoadActiveX 打开类库(用SET PROCEDURE 或 SET CLASSLIB,取决于类库的扩展名)。然后添加ActiveX 控件或ActiveX 子类到容器中,并命名它为cNewObjectName 属性中指定的值。如果指定了占位对象,控件以保存的值重调大小和位置。注意ProgID (保存在lcProgID 中) 必须在调用AddObject 中指定; 如果该属性没有填充值,用户会看到一个对话框要求选择要插入的控件。这就是为什么我们必须在注册表中搜索并决定ActiveX 控件的ProgID。
    lcObject = .cNewObjectName
    .Parent.AddObject(lcObject, .cClass, lcProgID)
    with .Parent.&lcObject
    if llObject
    .Top = lnTop
    .Left = lnLeft
    .Width = lnWidth
    .Height = lnHeight
    endif llObject
    .Visible = .T.
    endwith

    使用SFActiveX

    SFActiveX 是易于使用的:简单的拖动它到表单中(或其它容器中,如ActiveX 控件所在的页框中的页中),填写一些属性,并在表单的 Init 中放置一些代码来按需设置ActiveX 控件的实例。为了使它更易于使用,我为我最常用的 ActiveX 控件创建了一些SFActiveX 的子类:SFCommonDialog,SFImageList 和SFTreeView。这些子类只是在类 ID 中设置了适当的cClassID 属性,因此你不必再查找它的值。拖动它们中的一个到表单中就可以创建所需的ActiveX 控件。
    啊,有一个新出现的问题:假设你想在ActiveX 控件的一个方法中放入代码时怎么办? 在可视化控件中,这是常见的情况—例如,对于TreeView 和 ListView 控件,当用户单击节点或列表中的项时你可能会采取一些行动。对于对于TreeView 控件,你应该放入代码到NodeClick 方法中。当然,该问题是你不能放入代码到一个对象。要达到这一目的的唯一办法是创建一个 ActiveX 控件的子类,放入所需的代码到子类中,并告诉SFActiveX (通过cClass 和 cLibrary 属性) 实例化该类。一个轻微的"gotcha":你不能在 VCX 中创建子类,因为就象直接拖动一个ActiveX 控件到表单中一样,VFP 放入关于控件的二进制信息到VCX 中,而这正是SFActiveX 所想解决的问题。作为代替,你需要在一个PRG 中创建子类。以下是ACLASSES.PRG 中的示例代码,用于定义一个TreeView 控件的子类; 它的NodeClick 方法中有控制代码 (虽然是示例代码) ,该代码在用户单击节点时激活。注意OLEClass 必须指定,否则用户将会得到一个询问要插入哪一控件的对话框。
    define class MyTreeView as OLEControl
    OLEClass = COMCTL.TreeCtrl
    Name = MyTreeView
    procedure NodeClick
    lparameters toNode
    wait window You clicked on node + toNode.Text
    endproc
    enddefine
    不管你信不信,对于所有问题我们都用该方案解决了,我们还没有完全脱离危险! 还有最后一个"gotcha":虽然你可能会想你可以在子类定义中设置控件的一些属性 (如TreeView 控件的Style 和 LineStyle 属性),不要这样做。理由是,在子类中设置属性似乎会使这些属性发生问题。在表单中修改这些属性会失败。这就意味着你必须在控件实例化后设置这些属性,通常是在表单的Init 中 (因为在表单的Init 执行时,ActiveX 控件已经实例化了)。关于这一点在以后的示例中演示。
    一个最后的关于子类的问题:如果你在子类在创建了一个Init 方法,它将需要接受一个参数。OLE 类是传递到Init 方法(注意AddObject 调用LoadActiveX 时的第三个参数); 虽然你不需要它,如果没有LPARAMETERS 参数,你将会得到一条错误。
    示例表单TREEVIEW.SCX 演示了如何使用SFActiveX。该表单包括三个对象:一个SFTreeView 对象(为TreeViews指定的SFActiveX) 调用oTreeViewLoader,一个SFImageList 对象(为ImageLists 指定的SFActiveX) 调用oImageListLoader 和一个叫做shpTreeView 的Shape作为TreeView 控件的占位对象。oTreeViewLoader 的cNewObjectName 属性和oImageListLoader 指定要创建的控件的名字 (分别为oTree 和oImageList)。oTreeViewLoader 在它的 cObjectName 属性中,也有占位对象(shpTreeView)名字(shpTreeView)和我们要使用的 TreeView 子类名字(MyTreeView) 和在 cClass 中和 cLibrary 属性中的的它的位置(ACLASSES.PRG) 。表单的Init 方法设置一些 ActiveX 控件的属性,载入 ImageList 图象和 TreeView 的节点。
    local loPicture
    * 载入ImageList 图形。
    with This.oImageList
    loPicture = loadpicture(AUDIO.ICO)
    .ListImages.Add(, Audio, loPicture)
    loPicture = loadpicture(DESKTOP.ICO)
    .ListImages.Add(, Desktop, loPicture)
    endwith
    * 设置一些TreeView 属性。
    with This.oTree
    .ImageList = This.oImageList.Object
    .Style = 7
    .LineStyle = 1
    .LabelEdit = 1
    .HideSelection = .F.
    .Indentation = 25
    * 载入TreeView 的示例节点。
    .Nodes.Add(, 1, Top1, First Top Node, Audio)
    .Nodes.Add(, 1, Top2, Second Top Node, Audio)
    .Nodes.Add(Top1, 4, Child1, First Child Node, ;
    Desktop)
    .Nodes.Add(Top1, 4, Child2, Second Child Node, ;
    Desktop)
    .Nodes.Add(Top2, 4, Child3, Third Child Node, ;
    Desktop)
    .Nodes.Add(Top2, 4, Child4, Fourth Child Node, ;
    Desktop)
    endwith

    结论

    ActiveX 控件既是极好的又是很糟的。它们是极好的因为它们可以给你的应用程序以用户所期待的专业化的,优美的标准的32位应用程序外观 (VFP 的TreeView 控件和dbi technologies inc 公司的ctListBar 控件就是极好的例证),或者它们可以提供高能的能力及用VFP 代码编写是耗时的功能 (DynamiCube 控件就是一个示例)。它们是很糟的是因为当"OLE 类未注册" 或其它OLE 错误发生时,你不能仅仅卷起你的袖子并用 VFP 调试器来跟踪问题。SFActiveX 已经是我的救生器; 它处理我所遇到的ActiveX 控件的主要问题。我相信你也会象我一样觉得它是有用的。
     

    展开全文
  • 1. 怎样检测机器内是否安装Activex控件。 环境:html网页在服务器端,客户端访问服务器,这时有可能会检测客户机安装过控件没? 以下是程序:    windowonload();  function windowonload()  {  try...

    1. 怎样检测机器内是否安装过Activex控件。

    环境:html网页在服务器端,客户端访问服务器,这时有可能会检测客户机安装过控件没?

    以下是程序:

     <script language="javascript">
     windowonload();
     function windowonload()
     {
      try
      {
       var fso;
       fso=new ActiveXObject("xxxxx1.xxxx");
      }
      catch(e)
      {
       installFreeRoot();
      }
     } 
     </script>

    这个其它网页也有说,但是我们往往知道xxxx1怎么填写的,但是xxxx我找了半天,始终没有找到。最后看到一个哥们的提示才知道,原来是在注册表里面找输入clasid,就能找到这个activex控件的typename。

    2. activex控件的编辑框 当点击键盘backspace时会网页会回到上一个页面。

    这个我没有找到时什么原因造成的,但是找到了解决方法如下:

    <script>
    function document.onkeydown()  
    {  
     if(window.event.keyCode==8||window.event.keyCode==9||window.event.keyCode==37||window.event.keyCode==38||window.event.keyCode==39||window.event.keyCode==40){  
      window.event.keyCode=0;  
     }
    }
    </script>

    今天先说这么写吧,以后再整点activex加载到页面上时,我遇到过的问题。

    展开全文
  • web浏览器阻止activex控件怎么办

    千次阅读 2013-07-12 16:34:04
    iveX控件。因此,可能此页显示不正确。那么出现这种情况要怎样解决呢,有很多原因会造成出 现这种情况的,接着往下看,和我一起解决这个问题吧。 工具/原料 浏览器 步骤/...

    在日常使用电脑中,不知道你有没有出现这种问题,您的WEB浏览器已经阻止此站点不安全的Act

    iveX控件。因此,可能此页显示不正确。那么出现这种情况要怎样解决呢,有很多原因会造成出

    现这种情况的,接着往下看,和我一起解决这个问题吧。

    web浏览器阻止activex控件怎么办

    工具/原料

    • 浏览器

    步骤/方法

    1. 1

      浏览器禁用安装Activex插件:解决的方法就是要把浏览器禁用的Activex插件设置为允许,首先打开浏览器,然后选择菜单栏上工具选项,如图所示:

      web浏览器阻止activex控件怎么办
    2. 2

      选择工具选项之后,选择下拉菜单的Internet选项,如图所示:

      web浏览器阻止activex控件怎么办
    3. 3

      打开Internet选项之后,切换到安全选项卡,然后选择安全选项卡下的自定义级别,如图所示:

      web浏览器阻止activex控件怎么办
    4. 4

      单击自定义级别之后打开安全设置窗口,将重置为一栏的安全级别设置为安全级-中,然后勾选下载已签名的Activex控件一栏的启用,再勾选运行Activex控件和插件一栏的启用,把该控件和插件给启用上来,然后单击确定按钮,如图所示:

      web浏览器阻止activex控件怎么办
    5. 5

      设置完成之后单击确定按钮,关闭浏览器,然后重新启用浏览器,看一下这时候还会不会提示。




    引用地址 http://jingyan.baidu.com/article/fec7a1e538ce601190b4e79e.html

    展开全文
  • 怎样在Delphi2007中安装OCX控件

    千次阅读 2016-03-10 22:29:11
    一、安装新的控件 1)首先,单击File▶New▶Package创建一个控件包,然后保存这个工程(注意这一步很关键); 2)单击Component▶Import Component; 3)在弹出窗体中,选择Import ActiveX Control ,单击【next...

    一、安装新的控件

    1)首先,单击FileNewPackage 创建一个控件包,然后保存这个工程(注意这一步很关键);

    2)单击ComponentImport Component;

    3)在弹出窗体中,选择 Import ActiveX Control ,单击【next】,然后点击【add】,在列表中选一个已注册的OCX控件或直接导入一个ocx文件,然后单击【Next】 直到出现 Add unit to package....那一项(记住一定要选择这个项)最后点击Finish完成;

    4)用右键单击工程列表中的已创建的那个包文件(也就是后缀名为bpl的文件)在出现的列表中选择 Install 菜单,弹出对话框“控件已经安装”,那么打工告成

     

    二、测试控件

    1)首先,创建一个新的VCL工程用于测试(方法大家都会);

    参考: http://blog.csdn.net/desow/article/details/8288521

     

    展开全文
  • 从网上获取了一个VLC的SDK包,打开ActiveX文件夹下的test.html,网页加载出来后,播放不了文件,折腾了很久,才知道是ActiveX控件并未安装,所以无论怎么弄都是没办法播放文件的。 问题解决 如果检测到插件没有安装...
  • 我想要做的就是当用户在网页上同意安装这个ActiveX控件的时候。把相关的.dll包安装到指定的目录下(比如 C:\Windows\System32\)。 按照网上很多篇文章说的都试了下。但是不知道是文章中用的编辑器和我用的编辑器...
  • 演示怎样用WMP的ActiveX控件接口来播放视频文件,除了播放微软支持的格式之外,也能调用第三方插件来播放其他格式(比如MP4、MOV、TS等),建议安装Directshow分离器和解码插件---LAVSplitters,我的其他资源里面有...
  • vb控件开发 开发ocx

    热门讨论 2011-02-28 16:12:16
    ActiveX控件的创建 04 , 04.txt ADO控件和DATA控件的冲突(不能共存)的解决方法 05 , 05.txt Combo的自动查询技术 06 , 06.txt DirectX7.0使用心得(1) 07 , 07.txt DirectX7.0使用心得(2) 08 , 08.txt DirectX...
  • 关于web客户端ocx程序安装的问题

    千次阅读 2007-02-12 12:27:00
    关于web客户端ocx程序安装...我想如果在网页上放了ACTIVEX控件,如果浏览器用户允许,它可以自动注册,不过你要在网页的OBJECT说明中指明如机器上没有此控件,它下载的位置,这可在CODEBASE属性中说明。很简单: 在网页
  • 安装Office2003以后,有一个ActiveX控件安装到了系统中,这个控件位于“Program Files\Microsoft Office\OFFICE11\owssupp.dll”。通过这个控件,客户端页面上的JavaScript就可以激活本地的Office软件,来实现...
  • COM、CORBA与Internet编程

    2011-05-15 09:02:54
    4.6 注册和安装ActiveX控件 4.7 怎样使用ActiveX控件 4.8 ActiveForm 4.9 在Web上发布ActiveX 4.9.1 Project页 4.9.2 Packages页 4.9.3 Additional Files页 4.9.4 Code Signing页 第五章 对象链接与嵌入自动化 5.1...
  • Win8下OCX加载失败

    千次阅读 2014-01-20 14:15:39
    怎样才能将ocx控件注册到win8中?...我在win7(32位)+ vc2010开发的activex控件,本机注册运行都是成功的。但在win8(64)位的机器上注册的时候,没有任何的提示输出,我试了一下注册win8机器上的mediaplayer的控件
  • 如果各位大虾有空的话,能教教小弟一些关于调用ActiveX控件的知识就更好了!!! 感激不尽,我现在有个项目的重要技术难点就是要操作word文档! ⑴.安装Office 2000,其中Word 2000必选 ⑵.设
  • vfp6.0系统免费下载

    2009-09-17 13:49:13
    纵使 Visual FoxPro 6.0 更新成新的 Mscomctl.ocx 文件,带有这些控件的旧的 5.0 版表单将仍引用旧的文件,因为 ActiveX 控件是由其 OleClass 属性绑定的。旧 Comctl32.ocx 文件中的 ActiveX 控件为版本 1。例如,...
  • Foxpro 开发答疑160问

    2014-10-07 19:55:45
    第4章 ActiveX控件 180 49. 如何注册ActiveX控件 181 50. 如何调用进度条控件 183 51. 如何使用状态栏控件 184 52. 如何使用滑尺控件 188 53. 如何用MSComm控件 189 54. 如何使用日历控件 191 55. 如何使用...
  • 7.8.1 制作ActiveX控件的方法 7.8.2 ActiveX控件创建实例 第8章 图形图像及打印技术 8.1 图形设备接口概述 8.2 设备环境类CDC 8.2.1 设备环境简介 8.2.2 设备环境类CDC 8.2.3 设置场景类CDC的简单应用 8.3 画笔类...
  • 7.8.1 制作ActiveX控件的方法 7.8.2 ActiveX控件创建实例 第8章 图形图像及打印技术 8.1 图形设备接口概述 8.2 设备环境类CDC 8.2.1 设备环境简介 8.2.2 设备环境类CDC 8.2.3 设置场景类CDC的简单应用 8.3 画笔类...
  • Delphi5开发人员指南

    热门讨论 2012-07-18 16:51:14
    7.6 发布带有ActiveX控件的应用程序 154 7.7 注册ActiveX控件 155 7.8 BlackJack:一个OCX示范程序 155 7.8.1 纸牌 155 7.8.2 游戏 157 7.8.3 调用ActiveX控件的方法 165 7.9 总结 166 第二部分 高级技术 第8章 使用...
  • asp.net知识库

    2015-06-18 08:45:45
    页面一postback,它就显示页面的最顶端,怎样让它定位在某一位置? 如何保证页面刷新后的滚动条位置 清除网页历史记录,屏蔽后退按钮! 如何传值在2个页面之间 :要求不刷新父页面,并且不能用Querystring传值 Asp...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0005 安装ActiveX组件 4 0006 安装不同类型的第三方组件 5 0007 在Delphi中加载QReport报表组件 7 1.3 创建DLL文件 8 0008 生成一个DLL文件 8 0009 调用DLL文件 8 1.4 窗体相关操作 9 0010 将组件置...
  • 0005 安装ActiveX组件 4 0006 安装不同类型的第三方组件 5 0007 在Delphi中加载QReport报表组件 7 1.3 创建DLL文件 8 0008 生成一个DLL文件 8 0009 调用DLL文件 8 1.4 窗体相关操作 9 0010 将组件置...
  • 0005 安装ActiveX组件 4 0006 安装不同类型的第三方组件 5 0007 在Delphi中加载QReport报表组件 7 1.3 创建DLL文件 8 0008 生成一个DLL文件 8 0009 调用DLL文件 8 1.4 窗体相关操作 9 0010 将组件置...
  • 0005 安装ActiveX组件 4 0006 安装不同类型的第三方组件 5 0007 在Delphi中加载QReport报表组件 7 1.3 创建DLL文件 8 0008 生成一个DLL文件 8 0009 调用DLL文件 8 1.4 窗体相关操作 9 0010 将组件置...
  • 0005 安装ActiveX组件 4 0006 安装不同类型的第三方组件 5 0007 在Delphi中加载QReport报表组件 7 1.3 创建DLL文件 8 0008 生成一个DLL文件 8 0009 调用DLL文件 8 1.4 窗体相关操作 9 0010 将组件置...
  • 0005 安装ActiveX组件 4 0006 安装不同类型的第三方组件 5 0007 在Delphi中加载QReport报表组件 7 1.3 创建DLL文件 8 0008 生成一个DLL文件 8 0009 调用DLL文件 8 1.4 窗体相关操作 9 0010 将组件置...
  • 但是当安装到服务器后就只能预览到,点击打印时(我采用activex)提示无法找到该页,我想应是调用打印机前的viewer窗口出不来了,后面的打印机调用选择窗口也出不来,点导出时提示"网页有错误" A:如果使用ReportViewer...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

怎样安装activex控件