文档库 最新最全的文档下载
当前位置:文档库 › VS2005 C++开发ActiveX控件

VS2005 C++开发ActiveX控件

VS2005 C++开发ActiveX控件
VS2005 C++开发ActiveX控件

VS2005 C++ 开发ActiveX 控件

simpleboy 2013/8/20整理 simpleboy2008@https://www.wendangku.net/doc/ff10303790.html,

ActiveX 在网页开发中经常得到应用,基本的开发步骤为: 第一步:开发ActiveX 控件

第二步:在网页中通过JavaScript 调用ActiveX 控件 第三步:通过浏览器使用ActiveX 控件 下面给出具体的例子

一、开发ActiveX 控件

在VS2005中,使用编程向导,选择MFC ActiveX 控件,如下图所示。

缺省完成即可。

然后类视图中的TaxLib 类中添加控件的处理函数,添加的函数返回类型是

LONG,一个输入参数num 的类型是LONG,添加过程以及添加效果如下图所示。

U

n R

e g

i s

t e

r e

d

其中的AddOne 是刚才添加的控件处理方法,AboutBox 方法是缺省条件下开发工具自动生成的。后面的使用就可以使用这两个方法来实验了。

双击AddOne 函数就可以看到函数定义了,代码如下(对应的文件名为Tax.idl):

// Tax.idl : ActiveX 控件项目的类型库源。

// 此文件将由MIDL 编译器工具处理以 // 产生类型库(Tax.tlb),该类型库将成为 // Tax.ocx 中的资源。

#include #include

[ uuid (DC2A37EC-649B-42E9-8243-4EA232ED1C77), version (1.0), helpfile ("Tax.hlp"),

helpstring ("Tax ActiveX 控件模块"), control ] library TaxLib { importlib (STDOLE_TLB);

// CTaxCtrl 的主调度接口 [ uuid (CC389683-C147-490B-88DA-BF57022A615D), helpstring ("Tax Control 的调度接口")] dispinterface _DTax { properties :

methods : [id (DISPID_ABOUTBOX)] void AboutBox();

[id (1), helpstring ("方法AddOne")] LONG AddOne(LONG num);

};

// CTaxCtrl 的事件调度接口 [ uuid (10F7C381-1316-439D-BAE6-8C3D2221185D), helpstring ("Tax Control 的事件接口") ] dispinterface _DTaxEvents { properties :

// 事件接口没有任何属性

U

n R

e g

i s

t e

r e

d

methods :

};

// CTaxCtrl 的类信息 [ uuid (D3C5CECF-26AA-46FD-945A-1D73C1DA06CC), helpstring ("Tax Control"), control ] coclass Tax { [default ] dispinterface _DTax;

[default , source ] dispinterface _DTaxEvents; };

};

这里要特别提醒一下,在控件使用的时候,需要一个控件编号,在TaxLib

属性中看到的uuid 号码对应的是Tax.idl 文件中出现的第一个号码

“DC2A37EC-649B-42E9-8243-4EA232ED1C77”,很多时候大家会使用这个号码作为控件编号,

这是不对的,对的号码是类信息中的号码,即最后一个号码

“D3C5CECF-26AA-46FD-945A-1D73C1DA06CC ”。

控件处理函数在TaxCtrl.cpp 文件中实现,代码如下:

// TaxCtrl.cpp : CTaxCtrl ActiveX 控件类的实现。

#include "stdafx.h" #include "Tax.h" #include "TaxCtrl.h" #include "TaxPropPage.h"

#ifdef _DEBUG

#define new DEBUG_NEW #endif

IMPLEMENT_DYNCREATE(CTaxCtrl, COleControl)

// 消息映射

BEGIN_MESSAGE_MAP(CTaxCtrl, COleControl)

ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties) END_MESSAGE_MAP()

U

n R

e g

i s

t e

r e

d

// 调度映射

BEGIN_DISPATCH_MAP(CTaxCtrl, COleControl)

DISP_FUNCTION_ID(CTaxCtrl, "AboutBox", DISPID_ABOUTBOX, AboutBox, VT_EMPTY, VTS_NONE)

DISP_FUNCTION_ID(CTaxCtrl, "AddOne", dispidAddOne, AddOne, VT_I4, VTS_I4) END_DISPATCH_MAP()

// 事件映射

BEGIN_EVENT_MAP(CTaxCtrl, COleControl) END_EVENT_MAP()

// 属性页

// TODO: 按需要添加更多属性页。请记住增加计数! BEGIN_PROPPAGEIDS(CTaxCtrl, 1) PROPPAGEID(CTaxPropPage::guid) END_PROPPAGEIDS(CTaxCtrl)

// 初始化类工厂和guid

IMPLEMENT_OLECREATE_EX(CTaxCtrl, "TAX.TaxCtrl.1",

0xd3c5cecf, 0x26aa, 0x46fd, 0x94, 0x5a, 0x1d, 0x73, 0xc1, 0xda, 0x6, 0xcc)

// 键入库ID 和版本

IMPLEMENT_OLETYPELIB(CTaxCtrl, _tlid, _wVerMajor, _wVerMinor)

// 接口ID

const IID BASED_CODE IID_DTax =

{ 0xCC389683, 0xC147, 0x490B, { 0x88, 0xDA, 0xBF, 0x57, 0x2, 0x2A, 0x61, 0x5D } };

const IID BASED_CODE IID_DTaxEvents =

{ 0x10F7C381, 0x1316, 0x439D, { 0xBA, 0xE6, 0x8C, 0x3D, 0x22, 0x21, 0x18, 0x5D } };

// 控件类型信息

static const DWORD BASED_CODE _dwTaxOleMisc = OLEMISC_ACTIVATEWHENVISIBLE | OLEMISC_SETCLIENTSITEFIRST |

U

n R

e g

i s

t e

r e

d

OLEMISC_INSIDEOUT |

OLEMISC_CANTLINKINSIDE | OLEMISC_RECOMPOSEONRESIZE;

IMPLEMENT_OLECTLTYPE(CTaxCtrl, IDS_TAX, _dwTaxOleMisc)

// CTaxCtrl::CTaxCtrlFactory::UpdateRegistry - // 添加或移除CTaxCtrl 的系统注册表项

BOOL CTaxCtrl::CTaxCtrlFactory::UpdateRegistry(BOOL bRegister) {

// TODO: 验证您的控件是否符合单元模型线程处理规则。 // 有关更多信息,请参考MFC 技术说明64。 // 如果您的控件不符合单元模型规则,则 // 必须修改如下代码,将第六个参数从 // afxRegApartmentThreading 改为0。

if (bRegister)

return AfxOleRegisterControlClass( AfxGetInstanceHandle(), m_clsid,

m_lpszProgID, IDS_TAX, IDB_TAX,

afxRegApartmentThreading, _dwTaxOleMisc, _tlid,

_wVerMajor, _wVerMinor); else

return AfxOleUnregisterClass(m_clsid, m_lpszProgID); }

// CTaxCtrl::CTaxCtrl - 构造函数

CTaxCtrl::CTaxCtrl() {

InitializeIIDs(&IID_DTax, &IID_DTaxEvents); // TODO: 在此初始化控件的实例数据。 }

// CTaxCtrl::~CTaxCtrl - 析构函数

CTaxCtrl::~CTaxCtrl()

U

n R

e g

i s

t e

r e

d

// TODO: 在此清理控件的实例数据。 }

// CTaxCtrl::OnDraw - 绘图函数

void CTaxCtrl::OnDraw(

CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid) {

if (!pdc) return ;

// TODO: 用您自己的绘图代码替换下面的代码。 pdc->FillRect(rcBounds,

CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH))); pdc->Ellipse(rcBounds); }

// CTaxCtrl::DoPropExchange - 持久性支持

void CTaxCtrl::DoPropExchange(CPropExchange* pPX) {

ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor)); COleControl::DoPropExchange(pPX);

// TODO: 为每个持久的自定义属性调用PX_ 函数。 }

// CTaxCtrl::OnResetState - 将控件重置为默认状态

void CTaxCtrl::OnResetState() {

COleControl::OnResetState(); // 重置DoPropExchange 中找到的默认值

// TODO: 在此重置任意其他控件状态。 }

// CTaxCtrl::AboutBox - 向用户显示“关于”框

void CTaxCtrl::AboutBox() {

CDialog dlgAbout(IDD_ABOUTBOX_TAX); dlgAbout.DoModal(); }

U

n R

e g

i s

t e

r e

d

// CTaxCtrl 消息处理程序

LONG CTaxCtrl::AddOne(LONG num) {

AFX_MANAGE_STATE(AfxGetStaticModuleState());

// TODO: 在此添加调度处理程序代码

return num+1; }

从代码中可以看出AboutBox 函数会弹出一个关于的对话框,而AddOne 则返

回输入整数加1,代码编译后,如果没有出错,则可以得到控件Tax.ocx 了,如

下图所示。

可以使用VS2005自带的工具测试控件的功能,如下图所示。

U

n R

e g i s

t e

r e d

在测试容器中插入新控件,选择刚才编译好的控件(注意:编译好的控件自动会添加到测试容器中,开发人员不需要添加),如下图所示。

出现一个椭圆形,表示控件已经装载,可以进行测试了。我们这里只是测试

控件的方法是否可以正常调用。如下图所示。

在方法名下拉列表中,就是控件的两个调用方法,先调用AboutBox 方法,这个方法不需要输入参数,直接点调用即可,效果如下图所示。

AddOne 方法调用需要输入参数num,在参数位置输入整数3并点设置值,然后点调用,可以看到返回值是整数4,即函数执行成功,输入参数以及执行效果

如下图所示。

U

n R

e g

i s

t e

r e

d

通过控件容器测试,说明控件没有任何问题,下面就是控件的使用问题。

二、使用JavaScript 调用ActiveX 控件

有很多方法可以调用ActiveX 控件,这里选择在JavaScript 中调用ActiveX

控件。

编辑一个HTML 文档,名字为t.html,编辑内容如下:

ActiveX 控件Demo


U

n R

e g

i s

t e

r e

d

这里特别提醒一下,classid 号码要输入对,否则调用会因为找不到控件而失败。其他的含义比较简单,这里就不啰嗦了。

这里是在本地调用ActiveX 控件,其他形式的调用,还需要对控件进行安全方面的一些处理,否则浏览器会禁止执行。

三、浏览器使用ActiveX 控件

双击刚才编辑的x.html 文档,缺省情况下,启动IE 浏览器打开页面,会有一个报警,效果如下图所示。

允许启动控件,则可以点击“执行函数”和“关于”按钮了。

点击“执行函数”按钮,效果如下图所示。

点击“关于”按钮,效果如下图所示。

U

n R

e g i s

t e

r e d

WordVBA---ActiveX控件在Word文档中的使用方法

WordVBA---ActiveX控件在Word文档中的使用方法 当您想要提供一种完善的方式让用户与宏直接进行交互、而不受对话框干扰的时候,可以向文档直接添加ActiveX控件,这如同可以向自定义对话框添加 ActiveX 控件一样。使用以下过程可以将 ActiveX 控件添加到您的文档。 1、向文档中添加控件 您可以向文档的图形层或文本图层添加ActiveX 控件。 ★向图形层添加控件:单击控件工具箱上的控件。拖动控件的调整控点,直到控件的轮 廓大小和形状符合要求。 ★向文本层添加控件:请在按住 SHIFT 键的同时单击控件工具箱上的控件。该控件将 自动添加到文档中的插入点。 注释: 将一个控件(或一组控件)从窗体拖回"控件工具箱",即可创建一个可重复使用的该控件的模板。这是一个非常有用的功能,能为用户实现标准的应用程序界面。 2、设置控件属性 在设计阶段(宏运行之前)可以设置一些 ActiveX 控件的属性。在设计模式中,右键 单击一个控件并单击右键菜单中的"属性"以显示"属性"窗口。属性名称显示在窗口的左 栏,而属性值显示在右栏。可在属性名称的右边输入新值来设置该属性的值。 3、初始化控件属性 您可以通过在宏中使用 Visual Basic 代码在运行时初始化ActiveX 控件。例如,您 可在其中填充列表框中,设置文本值或设置选项按钮。 以下示例使用 Visual Basic 的 AddItem 方法将数据添至名为 lstRegions 的列表框,然后设置文本框的值并显示窗体。 Private Sub GetUserName() With UserForm1 .lstRegions.AddItem "North"

ActiveX控件添加指导

ActiveX控件添加应用指南 在有些应用软件中,比如VC、VB、CVI等,ActiveX控件中缺少具体的一些功能控件,如chart控件等,需要从网上下载一个MSCHRT20.OCX文件,在下图中红圈中选择“运行”, 打开后出现如下窗口: 在窗口里输入regsvr32 D:mschrt20.ocx,“D:mschrt20.ocx”为mschrt20.ocx文件所在位置点击确定,就完成了添加。如果运行时又出现了“ActiveX control is not licensed for this operation ”或类似提示,则需要用“记事本”格式的文档将以下程序复制并保存,且必须将此程序保存为XXX.reg格式(注册表格式),然后直接双击此reg格式的文件,就完成了许可(授权)。 Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Licenses] @="Licensing: Copying the keys may be a violation of established copyrights." [HKEY_CLASSES_ROOT\Licenses\096EFC40-6ABF-11cf-850C-08002B30345D] @="knsgigmnmngnmnigthmgpninrmumhgkgrlrk" [HKEY_CLASSES_ROOT\Licenses\12B142A4-BD51-11d1-8C08-0000F8754DA1] @="aadhgafabafajhchnbchehfambfbbachmfmb" [HKEY_CLASSES_ROOT\Licenses\190B7910-992A-11cf-8AFA-00AA00C00905] @="gclclcejjcmjdcccoikjlcecoioijjcjnhng" [HKEY_CLASSES_ROOT\Licenses\1F3D5522-3F42-11d1-B2FA-00A0C908FB55] @="gcfjdjecpchcncdjpdejijgcrdoijjfcieod" [HKEY_CLASSES_ROOT\Licenses\1FB639E1-771F-11d1-8FD4-00A0C91E29D5] @="ldaskjeinankjgbnkcejnkrgnkvntkhzkhbtnkste" [HKEY_CLASSES_ROOT\Licenses\2AC5863D-48B9-490c-ACD3-B7723A1FEB9E] @="wrtgfdsbvxgfsdyuihjknmvcxgasdwqersdfdfsdyu" [HKEY_CLASSES_ROOT\Licenses\2c49f800-c2dd-11cf-9ad6-0080c7e7b78d] @="mlrljgrlhltlngjlthrligklpkrhllglqlrk" [HKEY_CLASSES_ROOT\Licenses\38911DA0-E448-11D0-84A3-00DD01104159] @="mcpckchcdchjcjcclidcgcgchdqdcjhcojpd" [HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905] @="kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun" [HKEY_CLASSES_ROOT\Licenses\43478d75-78e0-11cf-8e78-00a0d100038e] @="imshohohphlmnhimuinmphmmuiminhlmsmsl" [HKEY_CLASSES_ROOT\Licenses\46D504D7-557F-4C19-A4DD-6605411EF496] "6A7693BA-3139-41fd-BF3D-299961C965D5"="01000000d08c9ddf0115d1118c7a00c04fc297e b01000000b0cfa8651eed814ea8aa77984d181953040000001800000056005300200050004900440 020*******e0066006f00000003660000a80000001000000056a66542c85db014774bffecdc56384e

注册ActiveX控件的几种方法

注册ActiveX控件的几种方法 使用ActiveX控件可快速实现小型的组件重用、代码共享,从而提高编程效率,降低开发成本。但是ActiveX控件对于最终用户并不能直接使用,因为ActiveX控件必须先在Windows 中注册。注册ActiveX控件一般来说有六种途径,它们有各自的优点,运用范围也不同。 Regsvr32.exe注册 Regsvr32.exe位于Windows目录的system子目录下。点击Windows的“开始→运行”菜单,在对话框中输入以下命令: regsvr32 netshare.ocx &&注册netshare.ocx控件 regsvr32 /u netshare.ocx &&解除netshare.ocx控件的注册 如果netshare.ocx文件不在system目录时,还必须在文件名前加上完整的路径。除了regsvr32应用程序之外,Microsoft在它的Web站点上还提供了一个称为regclean.exe的程序,可以检查注册表并去掉丢失的组件在注册表中的条目。regclean.exe除了可以删除“悬挂”的条目,它还提供一个“undo”文件帮助恢复错误的删除。 卧龙传说提醒:用regsvr32.exe注册ActiveX控件虽然简单,但需要用户手工进行注册,在不用时还需手工解除注册。 VFP环境注册 在我们进行程序设计时,VFP本身提供一个注册ActiveX控件的方法。 进入VFP环境,选择“工具→选项”菜单,点击“控件”页,选中“ActiveX控件”单选按钮,在列表框里显示所有已经注册的ActiveX控件,这时,点击右边的“添加”按钮,选择需要注册的ActiveX控件文件,“确定”后完成注册。也可以在表单设计器的表单控件工具栏里拖动“OLE”按钮到表单,在弹出的选择框里选中“插入控件”单选钮,同样点击右边的“添加控件”按钮,来完成新控件的注册。 卧龙传说提醒:本方法仅适合程序员在设计程序过程中手工进行,对用户而言,并没有实现在本地机上自动注册。 安装程序注册 大型应用软件一般都有一个安装程序,在安装程序中解决ActiveX控件的注册是较为理想的一种方案。 在用户执行安装程序时,这些ActiveX控件将自动在用户机器上安装并注册。 VFP7.0光盘所带的InstallShield是目前较为流行的制作安装程序的工具,使用它可以制

ActiveX控件安装指南

ActiveX控件安装指南 一、什么是ActiveX控件? 根据微软权威的软件开发指南MSDN(Microsoft Developer Network)的定义,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。 在因特网上,ActiveX插件软件的特点是:一般软件需要用户单独下载然后执行安装,而ActiveX插件是当用户浏览到特定的网页时,IE浏览器即可自动下载并提示用户安装。ActiveX插件安装的一个前提是必须经过用户的同意及确认。 ActiveX插件技术是国际上通用的基于Windows平台的软件技术,除了网络实名插件之外,许多软件均采用此种方式开发,例如Flash动画播放插件、Microsoft MediaPlayer插件、CNNIC通用网址插件等。 二、如果我没有安装控件会有什么现象? 1.为了保障您账户的安全,如果您使用的是IE浏览器,我们会自动提示您安装。如果没有正确安装, 会出现如下图所示的情况: 2.这时候您只要按照我们的提示,下载安装我们的安全控件并刷新,就可以正常使用了。 三、如何自动安装控件? 1.如果您使用的是windows xp系统(sp2),IE浏览器会屏蔽上面的弹出窗口,这时候您只要按照下 面的步骤安装就可以了: 2.第一步:登录交易系统时,IE窗口会出现下图所示的提示,此时点击“单击此处” 提醒:请不要关闭此提示框,否则,您就不能正常安装我们的插件了! 3.第二步:选择“安装ActiveX控件”:

提醒:选择并点击“安装ActiveX控件”,我们保证选择此控件对您的计算机没有任何风险! 4.第三步:弹出如下图所示安全警告窗口,选择“安装” 如果您的网络忙,安装可能会花几分钟时间,请稍等片刻!完成后您就可以登录交易系统了。 四、如何手动安装控件? 1.您也可以点下载软件包进行控件安装:(注:点此下载WINRAR) 2.第一步:鼠标右键点击软件包进行解压。

VB中ActiveX控件的使用

第八章VB中ActiveX控件的使用 8.1 概述 这里的ActiveX控件是指VB标准工具箱里没有的控件,用时需从“工程”菜单里选择“部件…”(或右键单击工具箱,从快捷菜单中选择“部件…”),从部件窗口里勾上需要的控件。 1. 设置页框的外观样式 (1)先在窗体上画出一个TabStrip对象; (2)右击该对象,从快捷菜单中选择“属性”; (3)在TabStrip属性窗口里选择通用(General)标签,在样式(Style)列表框里选择样式; (4)在TabStrip属性窗口里选择选项卡(Tabs)标签,在标题(Caption)框里输入标题和关键字; (5)如果需要的话,在工具提示文本(ToolTipText)框里输入提示信息; (6)在TabStrip属性窗口里选择字体(Font)标签,设置标题的字体(可以直接采用默认值)。 2.增减标签总数 在TabStrip属性窗口里选择选项卡标签,单击插入选项卡按钮增加标签,单击删除选项卡按钮删除标签。 3.在TabStrip上显示图形 1) 在窗体里拖入一个图象列表(ImageList)控件; 2) 在此对象上右击,选择属性,打开属性页窗口; 3) 选择图象标签,单击插入图片按钮,在选定图片对话框里选择想使用的位图或图标,然后单击打开按钮;为每个想添加图形的选项卡重复此步; 4) 单击确定按钮,ImageList里就存储了需要的图片。 5) 选择TabStrip,进入TabStrip属性窗口并选择通用标签,在图象列表框里选择ImageList1;

6) 选择选项卡标签,单击紧挨索引框的向左或向右箭头以选择一个Tab序号。在图象框里输入一个数,输入为1,则显示刚才ImageList控件里的第一个图形,输入为2,则显示刚才ImageList控件里的第二个图形,单击确定按钮完成。 4.在TabStrip上放置其它控件 在窗体上象添加普通控件一样,把每一页需要的控件添上,控件不止一个时,应该用Frame来分组,注意:除了默认的第一页上的Frame控件外,其他所有Frame的Visible属性都应该设为假。 5.设计代码 在用户选择了标签后,TabStrip要求编写代码来显示或隐藏控件。可用类似下面的代码来识别用户在哪一个项目上单击。 Private Sub TabStrip1_Click() Select Case TabStrip1.SelectedItem.key Case 1 <选第一项时需要执行的代码> Case 2 <选第一项时需要执行的代码> …… End Select End Sub 例:Private Sub TabStrip1_Click() Select Case TabStrip1.SelectedItem.Key Case "statubar" Frame2.Visible = False Frame1.Visible = True Case "toolbar" Frame1.Visible = False Frame2.Visible = True End Select End Sub 8.2 状态栏(StatusBar)和工具栏(ToolBar) 1.状态栏的作用与组成 StatusBar 控件由Panel(窗格)对象组成,最多能被分成16 个Panel 对象,每一个Panel 对象能包含文本和/或图片。控制个别窗格的外观属性包括Width、Alignment(文本和图片的)和Bevel(斜面)。此外,能使用Style 属性七个值中的一个自动地显示公共数据,诸如日期、时间和键盘状态等。 2.创建状态栏 先在窗体上画出一个StatusBar对象,再右击该对象,从快捷菜单中选择“属性”,进入属性页设置窗口,进行下面的设置: (1)选择窗格形状 在属性窗口里选择通用标签,在样式列表框里选择多窗格(缺省形式)或单窗格简单文本形式。 (2)添加或删除状态栏窗格 在属性窗口里选择窗格标签,单击插入窗格按钮添加一个窗格,或单击删除窗格按钮删除一个窗格。 (3)在单窗格里显示文本 在属性窗口里选择通用标签,在简单文本框里输入想显示在状态栏窗格里的文本。用代码显示的方式是: StatusBar1.SimpleText = "要显示的内容" (4)在多窗格里显示文本或图形 1). 在属性窗口里选择窗格标签,用索引旁的按钮选择窗格序号。 2). 在文本框里输入想显示在状态栏窗格里的文本。用代码显示的方式是:StatusBar1.Panels(x).Text = "要显示的内容"

activex控件被禁止怎么办

问题描述: 当我们打开services.msc、gpedit.msc等微软服务时,就会出现以下提示: 原因可能是下列其中之一: 1)当前安全设置禁止运行此页面中的ActiveX控件;或 2)您已经阻止了其中一个控件的发布者。 因此,该页面可能无法显示 网上的相关解决方法: 第1种。 一般情况下都是在IE工具菜单中,选择IE选项,点选“安全”选项页,允许ActiveX控件就可以了其实这么做无济于事 解决办法:在注册表的这个位置 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\ 有一项“□ ”,删除掉就可以了 第2种。 这个方法比较长,就是1中提到的修改IE选项(最不管用的方法,也许用到的,所以也贴出来) 1)当前安全设置禁止运行此页面中的ActiveX控件,或 2)您已经阻止了其中一个控件的发行者。 因此,该页面可能无法正常显示。 处理办法:设置问题 打开IE后,点击“工具”->“Internet选项”->“安全”->"自定义级别"->"AC TIVEX控件和插件"下面的禁用改为启用 对标记为可安全执行脚本的ActiveX控件执行脚本”设置为“启用 之后应用-确定退出后重起IE 确认活动脚本、ActiveX 和Java 未被阻止 确认您计算机上的Internet Explorer 或另外一种程序(如防病毒程序或防火墙)未配置为阻止活动脚本、ActiveX 控件或Java 小程序。在Internet Explorer 的“高”安全级别,活动脚本、ActiveX 控件和Java 小程序被关闭。默认情况下,Internet Explorer 6 和某些Internet Explorer 5.x 版本针对受限站点区域使用“高”安全级别。默认情况下,Microsoft Windows Server 2003 针对受限站点区域和Internet 区域使用“高”安全级别。如要为当前网页重置Internet Explorer 安全设置,请按照下列步骤操作:1. 启动Internet Explorer。 2. 在“工具”菜单上,单击“Internet 选项”。 3. 在“Internet 选项”对话框中,单击“安全”。 4. 单击“默认级别”。 5. 单击“确定”。 请参见您使用的防病毒程序或防火墙的文档资料,以确定如何打开脚本、ActiveX 和Java 小程序。 确认您的防病毒程序未设置为扫描“临时Internet 文件”或“已下载的程序文件”文件夹 请参见您使用的防病毒程序的文档资料,以确定如何防止该程序扫描“临时Internet 文件”或“已下载的程序文件”文件夹。 删除所有临时的Internet 相关文件 从您的计算机中删除所有临时的Internet 相关文件。为此,请按照下列步骤操作:1. 启动Internet Explorer。 2. 在“工具”菜单上,单击“Internet 选项”。 3. 单击“常规”选项卡。

基于MFC的ActiveX控件开发

基于MFC的ActiveX控件开发 2011-08-19 11:12 https://www.wendangku.net/doc/ff10303790.html,/?p=114 ActiveX 控件是基于组件对象模型(COM) 的可重用软件组件,广泛应用于桌面及Web应用中。在VC下ActiveX控件的开发可来开发,这样做显然非常的麻烦,对程序员要求也非常高,因此一般是不予考虑的;一种是基于传统的MFC,采用面向对象的方的C++类中,开发者通过继承这些类得到COM支持功能。MFC为广大VC程序员所熟悉,易于上手学习,但缺点是MFC封装控件相对会比较大,因此比较适于开发桌面ActivexX控件,尤其是有GUI界面的控件。第三种就是基于ATL的,ATL可以说是了C++的模板技术,在运行时不需要依赖于类似MFC程序所需要的庞大的代码模块,更适合于Web应用开发。 本文介绍的是采用第二种方式,即应用MFC进行桌面可视控件开发的方法步骤,开发环境则是基于VC2005。 1.创建控件项目 打开VC2005后,我们要先创建一个项目,在新建项目页的左侧选择Visual C++-MFC,在右侧选择MFC ActiveX控件,填上解名称是activexdemo1,解决方案名称是activexdemo。 然后进入控件向导页,在向导的第二页有个运行时许可证,选中这个的话会在生成控件的同时生成一个许可证文件,其他用户在使可证,在此我们保持默认状态,不选。

下一页是关于项目中各部分的命名问题,可以根据需要自定义,这里就按默认的情况不做修改了。 下一页是选择控件基于哪种控件的扩展以及控件的一些基本特性。如果新建的控件是基于某种特定控件的话,就在创建的控件基于none。下方的附加功能根据实际需要进行选择,并且可以将鼠标放置于选项上方,功能的说明会自动显示在动态出现的小提示信息据你的选择生成新项目。

安装ActiveX控件

什么是ActiveX控件? 1.ActiveX插件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB 网页或其它应用程序中。 如果我没有安装控件会有什么现象? 1.为了保障您账户的安全,如果您使用的是IE浏览器,我们会自动提示您安装。如果没有正确安装, 会出现如下图所示的情况: 2.这时候您只要按照我们的提示,下载安装我们的安全控件并刷新,就可以正常使用了。 如何自动安装控件? 1.如果您使用的是windows xp系统(sp2),IE浏览器会屏蔽上面的弹出窗口,这时候您只要按照下面 的步骤安装就可以了: 2.第一步:登录交易系统时,IE窗口会出现下图所示的提示,此时点击“单击此处” 提醒:请不要关闭此提示框,否则,您就不能正常安装我们的插件了! 3.第二步:选择“安装ActiveX控件”:

提醒:选择并点击“安装ActiveX控件”,我们保证选择此控件对您的计算机没有任何风险! 4.第三步:弹出如下图所示安全警告窗口,选择“安装” 如果您的网络忙,安装可能会花几分钟时间,请稍等片刻!完成后您就可以登录交易系统了。 如何手动安装控件? 1.您也可以点下载软件包进行控件安装:(注:点此下载WINRAR) 2.第一步:鼠标右键点击软件包进行解压。 3.第二步:打开解压后文件夹install,右键点击epsnd_m8.inf文件,选择安装。

4.第三步:等待安装进程完成。 完成后您就可以登录交易系统了。 为什么我按上面的操作还是无法安装,或是安装后也无法正常使用? 1.请检查您的电脑是否安装了3721或其他拦截广告的插件,如果是,请将其设置为不要拦截ActivX 控件! 2.请检查您的IE设置,并按以下步骤修改您的IE设置:

使用ActiveX控件用于web开发

ActiveX控件的Web开发使用注意事项 ActiveX控件经常运用于Web开发中,在最近国联项目的二次开发任务:FakeDNS+ActiveX 插件安全检查中,涉及到了部分与ActiveX插件联动与配合使用的功能。现将开发过程中遇到的部分问题与心得分享如下,以便大家在以后的工作中参考。 ActiveX是微软的东西,故而这玩意儿只有IE才支持!类似于Java的Applet 1、如何判断当前客户端是否安装相关的ActiveX控件? Js代码: try{ var obj = new ActiveXObject("SECURITYCHECKAX.SecurityCheckAXCtrl.1"); }catch(e){ alert(‘未安装插件’) } ActiveXObject中的字符串是取自插件注册后注册表中的ProgID值。如下图所示:

2、页面如何使用ActiveX插件? 在需要使用插件的页面(html或者jsp)中,添加如下代码: 注:version后面的版本号,中间的符号是, 不是. 3、如何在客户端装载插件? 本次的插件开发中,将ActiveX插件打包成了cab包和exe程序两种格式(注:插件程序在注册的时候必须设置为安全脚本)。 当页面引用了上述代码后,若客户端未安装插件,则会自动弹出安装提示信息,如下图所示: 点击右键安装后,刷新当前页面即可 采用exe插件安装包的目的:由于IE浏览器的插件安装提示是自动弹出的,不排除某些原

对ActiveX控件的简单理解

对ActiveX控件的简单理解 我们在使用操作系统的过程中,常常在弹出的网页等地方弹出需要安装ActiveX控件的提示,ActiveX控件是什么东西呢,通过对书本的学习,我觉得自己对ActiveX控件有了初步的认识,现在就ActiveX控件的认识谈谈自己的理解。 ActiveX控件的运行环境: ActiveX控件是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM (DCOM)。在创建包括ActiveX程序时,主要的工作就是组件,一个可以自足的在ActiveX 网络(现在的网络主要包括Windows和Mac)中任意运行的程序。这个组件就是ActiveX 控件。ActiveX为抗衡Sun Microsystems的JAVA技术而提出的,此控件的功能和java applet 功能类似。如果您使用的是Windows操作系统,您或许会注意到一些以OCX结尾的文件。OCX代表“对象链接与嵌入控件”(OLE),这个技术是Microsoft提出的程序技术,用于处理桌面文件的混合使用。现在COM的概念已经取代OLE的一部分,Microsoft也使用ActiveX 控件代表组件对象。 组件的一大优点就是可以被大多数应用程序再使用(这些应用程序称为组件容器)。一个COM组件(ActiveX控件)可由不同语言的开发工具开发,包括C++和Visual Basic或PowerBuilder,甚至一些技术性语言如VBScript。 目前,ActiveX控件在Windows和Macintosh中运行,未来可支持UNIX的ActiveX控件。 ActiveX控件的功能: 按照分类功能ActiveX控件有4项主要功能1.自动化服务器;2.自动化控制器3.控件4.文档 1.自动化服务器:可以由其他应用程序编程驱动的组件。 2.自动化控制器:那些使用和操纵自动化服务器的应用程序。 3.控件:ActiveX控件等价于以前的OLE控件或OCX。 4.文档:ActiveX文档,即以前所说的DocObject,表示一种不仅仅是简单控件或自动化服务器的对象。 ActiveX控件是一个标准的用户接口元素,是具有 .OCX 文件扩展名或者可插入对象的文件,能够快速地把窗体和对话框组装起来;当使用自定义控件对话框将其增加到工程中去时,工具箱将被扩展。在以前ActiveX控件被称作OLE 控件。ActiveX 控件还使Internet 更加生动,为World Wide Web 页增加了有趣的新功能。 ActiveX 控件是一种可重用的软件组件,通过使用ActiveX控件,可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能。如,StockTicker控件可以用来在网页上即时地加入活动信息,动画控件可用来向网页中加入动画特性。现在,已有1000多个商用的ActiveX控件,开发控件可以使用各种编程语言,如C,C++,使用者无需知道这些组件是如何开发的,在很多情况下,甚至不需要自己编程,就可以完成网页或应用程序的设计。

ActiveX控件及其签名

ActiveX控件及其签名 1 简介 1.1 什么是ActiveX 根据微软权威的软件开发指南MSDN(Microsoft Developer Network)的定义,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。 在因特网上,ActiveX插件软件的特点是:一般软件需要用户单独下载然后执行安装,而ActiveX插件是当用户浏览到特定的网页时,IE浏览器即可自动下载并提示用户安装。ActiveX插件安装的一个前提是必须经过用户的同意及确认。 ActiveX插件技术是国际上通用的基于Windows平台的软件技术,除了网络实名插件之外,许多软件均采用此种方式开发,例如Flash动画播放插件、Microsoft MediaPlayer插件、CNNIC通用网址插件等。 1.2 什么是软件代码数字签名和代码签名数字证书? 软件代码数字签名是以电子方式通过信息来标记文件的方式。此时,文件将由创建者(发行商)来数字签名。有效的数字签名将告诉您关于文件的下面两项内容:发行商名称,以及文件在签名后没有被更改。任何篡改都将使签名无效。软件代码数字签名将: * 允许您验证文件的发行商。 * 确认文件自数字签名以来没被更改过。 任何软件开发商都可以向IE浏览器中的“受信任的根证书颁发机构”中的证书颁发机构(如GeoTrust)申请软件代码签名证书来签名代码。 1.3.浏览器如何保证ActiveX插件的安全性? 当通过Internet发行软件时,软件的安全性是一个非常引人注意的问题,IE浏览器通过以下的方式来保证ActiveX插件的安全:

步步学ACTIVEX网页控件开发

步步学ACTIVEX网页控件开发 本文将首先介绍如何使用Visual Studio开发一个简单的ActiveX控件,然后介绍Ac tiveX控件开发相关的基础知识,比如方法,属性和事件等,最后介绍如何利用这些知识,实现ActiveX控件和网页页面之间的通信。 MyActiveX控件的效果图 简介 ActiveX是由Microsoft在90年代中期提出的一项技术。利用ActiveX技术,开发者可以创建像Java小程序applet一样的小型应用程序。这些应用程序可以被下载然后在M icrosoft的浏览器中运行。这篇文章是为那些想学习如何开发他们的第一个ActiveX控件的Visual C++开发者准备的。

当我自己尝试学习这些技术的时候,我发现很多针对ActiveX技术的资料都已经不再适用了,都已经过时了,或者丢失了很多关键性的信息,这些都使得我在为我的项目创建一个ActiveX控件的时候,变得困难重重。这篇文章将帮助你实现ActiveX网页控件开发的快速入门。本文将首先介绍如何使用Visual Studio开发一个简单的ActiveX控件,然后介绍ActiveX控件开发相关的基础知识,比如方法,属性和事件等,最后介绍如何利用这些知识,实现ActiveX控件和网页页面之间的通信。 另外,你也将学习到如何在默认的Internet Explorer安全设置下取消掉控件加载过程中的警告或者错误提示,使你的控件成为一个“安全”的ActiveX控件。 在本文中,我们将创建一个实际的ActiveX控件。在控件加载的过程中,它将显示一个动态的进度条,告诉用户控件正在加载并处理信息。同时,这个控件也将展示如何在Act iveX控件和Web页面之间传递信息。本文将引导你一步步地利用Microsoft Visual St udio 2005完成ActiveX控件的开发工作。 创建ActiveX控件 要创建一个ActiveX控件,首先启动Visual Studio 2005,执行下面这些步骤: 1.选择“文件”菜单,然后选择“新建”->“项目”。 2.在“新建项目”对话框中,如下图1所示,选择“Visual C++”分类下的“MFC”。然后选择“MFC ActiveX控件”作为项目模板。 3.将新项目命名为“MyActiveX”,然后选择项目的保存目录,最后点击“确定”按钮,关闭“新项目”对话框,进入“MFC ActiveX控件”向导。

IE浏览器控件安装与设置(ActiveX插件)

电子商务WEB接入浏览器控件安装与设置 浏览器设置 1. Windows 7 操作系统中IE8的设置 Windoews 7 操作系统本身自带的浏览器为IE8,下面介绍Windows7系统中的IE8在安装控件前的设置。 (1)取消弹出窗口阻止程序 关闭弹出窗口阻止程序,工具→弹出窗口阻止程序→关闭弹出窗口阻止程序,如图0-1所示。 图0-1 弹出窗口阻止程序设置 (2)可信任站点设置 打开综合项目管理信息系统登陆地址(本说明中使用的是http://10.14.2.51:7001/pcpost ,具体请根据实现情况而定),将其设置为可信任站点,(工具>>Internet选项>>安全>>可信任站点站点按钮),如图0-2所示

图0-2 IE可信任站点设置 可信任站点安全级别设置,点击图0-3所示的“自定义级别”按钮,;在弹出的窗口中把ActiveX各选项设置为“提示”或是“启动”即可,如图0-4所示(在图中应该有九项需要设置,视实际情况而定)。 图0-3 可信任站点安全级别设置

图0-4 ActiveX控件设置

(3)在高级选项中设置(Iternet 选项 高级)把“启动内存保护减少联机攻击”的勾去掉,如所示。 图0-5 启动内存保护减少联机攻击操作界面 注意:如果该选项前面的勾不允许取消,是灰色不可编辑状态时,请关闭浏览器,在桌面找到浏览器图标(C:\Program Files\Internet Explorer\iexplore.exe)右击浏览器选择“以管理员身份运行”,然后再去修改该选项即可。 图0-6 以管理员身份运行操作界面

(4)兼容视图设置 通过以上三步基本可以正常安装登陆控件了,如果还是显示不正常,请把登陆地址加入到兼容视图地址中(IE菜单下的工具选项),然后单击“兼容性视图(V)”,分别如图0-7、图0-8所示和图1-9 所示。 图0-7 兼容性视图设置菜单选项 图0-8 兼容性视图地址设置

Delphi不注册COM直接使用ActiveX控件并绑定事件

Delphi不注册COM直接使用ActiveX控件并绑定事件 文笔不行,直接上源码: 主窗口: [delphi] view plaincopyunit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Winapi.ActiveX , https://www.wendangku.net/doc/ff10303790.html,Obj, EventSink; type TForm1 = class(TForm) pnlCom: TPanel; Panel2: TPanel; Panel3: TPanel; btnGo: TButton; edt1: TEdit; LblStatus: TLabel; procedure FormCreate(Sender: TObject); procedure btnGoClick(Sender: TObject); private { Private declarations } EventSink: TEventSink; ActiveXCon: Variant; function InitAtl: Boolean; procedure EventSinkInvoke(Sender: TObject; DispID: Integer; const IID: TGUID; LocaleID: Integer; Flags: Word; Params: tagDISPPARAMS; VarResult, ExcepInfo, ArgErr: Pointer); public { Public declarations } end; var Form1: TForm1; const CLASS_MsRdpClient: TGUID =

IE浏览器安装activex控件不好使解决办法

在浏览网站进行下载附件,上传照片的时候,各网站经常提示需要安装ActiveX控件,设置可信任站点等操作,有时候虽然安装了,但是点击上传或下载的时候,还是没有反应,或者经常弹出“未设置可信任站点”、“请先安装上传下载插件”等提示,可以按照以下几个步骤进行重新设置解决这个问题 1.首先将需要安装的插件重新下载下来,然后关闭所有浏览器,右 键>>以管理员身份运行,如果没有这个选项,直接双击运行,如下图: 2.设置可信任站点 打开IE浏览器(以IE8为例),找到设置>>internet选项,打开对话框在弹出的对话框中选择“安全”>>”受信任的站点”>>“站点”,打开受信任站点对话框 在受信任站点对话框中输入要添加的受信任站点的地址,点击“添加”,如果弹出“添加到该区域的站点必须使用前缀https……”,将对话框最下方的对号去掉即可,直到把所需要的站点都添加完毕

3.修改ActiveX控件相关的安全设置 在internet选项中找到安全>>自定义级别(在第二部分的设置中同一个对话框),打开浏览器安全级别自定义设置对话框 将“ActiveX”控件和插件相关设置中的选项进行如下调整(未涉及到的默认配置即可,一般不需要更改): 1.ActiveX控件自动提示:启用 2.对标记为可安全执行脚本的ActiveX控件执行脚本:启用 3.对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本:提示 4.二进制和脚本行为:启用 5.仅允许经过批准的域在未经提示的情况下使用ActiveX:启用6.下载未签名的ActiveX控件:提示 7.下载已签名的ActiveX控件:启用 8.允许运行以前未使用的ActiveX控件而不提示:提示 9.运行ActiveX控件和插件:启用 按照如上三个步骤设置完一般浏览器就不会弹出各种提示框了,插件也应该ok了

MFC开发ActiveX控件全过程

使用MFC开发ActiveX控件全过程 Visual C++是开发ActiveX控件的强大工具,它的特点是开发周期短、便于使用,因此它已经成为开发ActiveX控件的主要工具之一。Visual C++集成开发环境,使用了微软自己的类库MFC,MFC对开发Ac tiveX控件提供了全面的支持,本文讲述的过程均在Visual C++ 6.0(以下简称VC)中实现。 1、创建工程: 对于使用过VC的人,可以很容易地创建一个开发ActiveX控件的工程,没有使用过VC的人,按 照下面的操作步骤,也可以很快创建一个同样的工程出来。 第一步:“File”—>“New”—>“(Projects)MFC ActiveX ControlWizard”,在“Project Name”中输入合适的工程名(以test为例),在“Location”中选择工程文件存放路径,然后,“OK”进入下一步; 第二步:选择你想在这个工程中生成的ActiveX控件的个数(至少一个),其余选项决定是否生成一些辅助文件,通常按照默认设置即可,“Next”进入下一步; 第三步:编辑你的工程中各个类和文件的名称,配置一些辅助选项,可以全部选择默认设置,“Fini sh”进入下一步; 第四步:展示向导为你的工程生成的各种配置信息,“Cancel”重新设置不满意的选项,“OK”结束工程的创建。 2、绘制控件: MFC将对ActiveX控件的支持封装在COleControl类中,所有ActiveX控件均从这个类 派生。绘制控件的全部操作则集中在一个虚函数中—OnDraw(),其默认实现如下: void CTestCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid) { // TODO: Replace the following code with your own drawing code. pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH))); pdc->Ellipse(rcBounds); } 可以看到,OnDraw()函数的默认实现是在矩形rcBounds中绘制一个椭圆,通过改写OnDraw()函数中的内容,就可以绘制自己想要的控件了。需要注意的一点,控件的绘制被限制在矩形rcBounds中,绘制范围不能超出这个矩形。 3、添加属性: ActiveX控件提供了三种类型的属性供用户选择:公共属性、具有通知特性的属性和Get/Set 类型的属性。下面依次对三种类型属性的添加、初始化、新属性值的获取和属性的永久保存,分别进行介绍。 三种类型的属性的添加,都遵照相同的步骤:“View”—>“ClassWizard”—>“(Automation)Add P roperty”—>“Add Property”对话框。注意,“Class Name”中应是你想添加属性的控件类的名称(如CTestCtrl)。 ㈠.公共属性: COleControl类提供了九种常用的属性作为公共属性,我们以“Caption”为例。在“Add Property”对话框中的“External Name”选择“Caption”,“Implementation”中选中“Stock”,然后“OK”即向控件添加了Caption公共属性。 COleControl类为每一个公共属性都提供了默认的设置和获取成员函数,对于Caption属性有SetTex t()和GetText()(或InternalGetText())。

第二篇C# ActiveX控件安装部署

1.制作ActiveX安装项目 (1). 新建一个安装项目ActiveXDemo.Setup (2). 在ActiveXDemo.Setup项目上点右键,【添加】->【项目输出】,选择上边的ActiveXdemo项目

(3). 右键ActiveXDemo.Setup项目打开属性页面,设置安装URL 这里设置为:http://localhost/Install 这个目录必须是实际存在的,用来存放生成的安装文件,供客户端下载安装。 (4).在建立的主输出来自ActiveXDemo上右键属性,将Register这一项一定要设成“vsdrpCOM”。 (5)在“检测到的依赖项”中双击“Microsoft .NET Framework”,然后在“启动条件”的.Net Framework 上右键属性这里可以调整安装包的framework版本。 (6) 在安装项目ActiveXDemo.Setup右键属性的“系统必备”中,可以指定环境必须的framework版本。这些如果你是仅需要低版本要求时,是需要更改的,否则可能到目标主机上部署时会遇到莫名其妙的问题。

(7)另外,如果我们是使用msi的方式部署控件,这样就会有一个控件的安装过程(可以静默),所以你可以指定安装包的版本,用于以后自动升级;可以制作卸载程序,用于手动卸载等等,看各位的需求了,简单贴上来一个制作卸载的过程,此步可以省略。 1) 拷贝文件C:\Windows\System32\msiexec.exe文件,修改文件名为Uninstall.exe,添加到安装项目中,然后双击Unistall.exe打开“文件系统”属性,右键Unistall.exe创建一个快捷方式,将快捷方式重命名为“御载”。 2) 在卸载控件上点击右键-> 属性,设置Arguments,就是指定要卸载的程序

相关文档