ACTIVEX网页控件开发(详细)

ACTIVEX网页控件开发(详细)
ACTIVEX网页控件开发(详细)

步步学ACTIVEX网页控件开发

转载自IT168 [ https://www.360docs.net/doc/0815756295.html,/ ]

第1页:创建ActiveX控件

本文将首先介绍如何使用Visual Studio开发一个简单的ActiveX控件,然后介绍ActiveX控件开发相关的基础知识,比如方法,属性和事件等,最后介绍如何利用这些知识,实现ActiveX控件和网页页面之间的通信。

MyActiveX控件的效果图

简介

ActiveX是由Microsoft在90年代中期提出的一项技术。利用ActiveX技术,开发者可以创建像Java小程序applet一样的小型应用程序。这些应用程序可以被下载然后在Microsoft的浏览器中运行。这篇文章是为那些想学习如何开发他们的第一个ActiveX控件的Visual C++开发者准备的。

当我自己尝试学习这些技术的时候,我发现很多针对ActiveX技术的资料都已经不再适用了,都已经过时了,或者丢失了很多关键性的信息,这些都使得我

在为我的项目创建一个ActiveX控件的时候,变得困难重重。这篇文章将帮助你实现ActiveX网页控件开发的快速入门。本文将首先介绍如何使用 Visual Studio开发一个简单的ActiveX控件,然后介绍ActiveX控件开发相关的基础知识,比如方法,属性和事件等,最后介绍如何利用这些知识,实现ActiveX

控件和网页页面之间的通信。

另外,你也将学习到如何在默认的Internet Explorer安全设置下取消掉控件加载过程中的警告或者错误提示,使你的控件成为一个“安全”的ActiveX控件。在本文中,我们将创建一个实际的ActiveX控件。在控件加载的过程中,它将显示一个动态的进度条,告诉用户控件正在加载并处理信息。同时,这个控件

也将展示如何在ActiveX控件和Web页面之间传递信息。本文将引导你一步

步地利用Microsoft Visual Studio 2005完成ActiveX控件的开发工作。

创建ActiveX控件

要创建一个ActiveX控件,首先启动Visual Studio 2005,执行下面这些步骤:

1.选择“文件”菜单,然后选择“新建”->“项目”。

2.在“新建项目”对话框中,如下图1所示,选择“Visual C++”分类下的“MFC”。然后选择“MFC ActiveX控件”作为项目模板。

第2页:添加对动态GIF动画的支持

3.将新项目命名为“MyActiveX”,然后选择项目的保存目录,最后点击“确定”

按钮,关闭“新项目”对话框,进入“MFC ActiveX控件”向导。

图1 新项目对话框

4.在“MFC ActiveX控件”向导中,如下图2所示,选择左侧的“控件设置”,进入控件参数设置页面。

5.在“Create control based on”下拉列表中选择“STATIC”。这表示我们使用的是一个静态控件,因为我们仅仅是显示输出而不接收输入。

6.在下面的“Additional features”的所有选项中,我们确认选中“Activates when visible”和“Flicker-free activation”这两个选项,同时确认“Has an About box dialog”选项没有被选中。

图2 MFC ActiveX 控件向导对话框

7.点击“Finish”按钮关闭整个“MFC ActiveX控件向导”对话框,然后向导就会为我们创建整个项目的源代码。默认情况下,向导创建的项目是使用共享MFC DLL的,这里我们需要改变这一设置。因为如果目标机器上没有安装MFC DLL,那么ActiveX控件就不会运行。我们常常看到一些网页上的ActiveX控件被显示为红色的叉叉,很多都是这个原因造成的。

为了解决这个问题,我们使用静态的MFC DLL。从Visual Studio的菜单中选择“项目”->“属性”,然后切换到“配置属性”->“普通”,在配置页面中的“Use of MFC ”下拉列表中,将“use MFC in a shared DLL”切换成“Use MFC in a Static Library”就可以了。

8.向导创建了如下三个类:

CMyActiveXApp –这是从COleControlModule派生的ActiveX控件应用程序类。通过这个类,我们可以得到一个OLE控件对象,这个对象包含了对控件进行初始化(InitInstance)和对控件进行清理(ExitInstance)的成员函数。CMyActiveXCtrl –这个类是从COleControl派生的。我们将在这个类中实现控件的主要功能。

CMyActiveXPropPage –这个类从COlePropertyPage派生的。它被用来管理控件的属性对话框。MFC ActiveX控件向导已经为我们创建了一个默认的属性对话框,我们只需要在其基础上进行修改就可以了。

添加对动态GIF动画的支持

为了实现使用ActiveX控件显示动态的进度条GIF动画,我们将使用Oleg Bykov在CodeProject的一篇文章中创建的类CPictureEx。具体的文章地址,请查阅本文最后的参考资料。

首先,我们需要将源代码文件pictureex.cpp和pictureex.h添加到我们的项目中。选择Visual Studio 2005 IDE中的“解决方案浏览器”,在源代码窗口中点击“Header Files or Source Files”,然后点击右键,在弹出的上下文菜单中选择“Add”->“Existing Item”,在文件选择对话框中,选中我们需要的源代码文件添加到项目中。

默认情况下,Visual Studio 2005本身是不支持GIF资源的。如果你尝试着添加一个GIF资源,它将弹出一个错误窗口报告说这个文件不是一个合法的GIF 文件。为了添加一个动态的 GIF动画资源,我们需要做一些额外的工作。请按照下面的步骤添加GIF资源:

1.复制GIF文件ProcessingProgressBar.gif到你的项目目录,然后将其扩展名修改为“gaf”。在资源视图中,右键单击 MyActiveX.rc,然后选择“Add Resource”。在弹出的添加资源对话框中,点击“Import”按钮,然后选择ProcessingProgressBar.gaf。

在“自定义资源类型”对话框中,填入“GIF”作为资源类型。这样我们就可以将GIF图像文件导入到项目中作为资源了。你可以在资源视图的“GIF”目录下中找到我们刚刚导入的GIF图像文件。选中这个GIF图像资源,然后将它的ID由默认的IDR_GIF1修改为IDR_PROGRESSBAR。

2.在上一步中,我们使用“gaf”作为文件扩展名绕过了Visual Studio对GIF 资源文件的检查。现在,我们需要做一些事情将这个“错误”修正过来,使得GIF 图像文件能够正常工作。首先,在Visual Studio 2005中保存MyActiveX.rc。然后打开项目目录,用记事本直接打开资源文件MyActiveX.rc,然后找

到 IDR_PROGRESSBAR的定义行。这里我们需要将文件名修改为“ProcessingProgressBar.gif”。同样的,将项目目录下的 GIF资源文件的文件名修改为“ProcessingProgressBar.gif”。

第3页:添加代码实现进度条的显示

接着,保存记事本中的MyActiveX.rc。这时,Visual Studio将报告说MyActiveX.rc被外部程序修改,点击“Yes”重载这个资源文件。最后,选中“解决方案浏览器”中的“ProcessingProgressBar.gaf”,在它的属性对话框中,将“Relative Path”修改为“ProcessingProgressBar.gif”

添加对话框显示进度条

现在,我们将添加一个对话框用以显示进度条:

1.在资源视图中,右键点击对话框节点,在上下文菜单中选择“Insert Dialog”创建一个新的默认对话框。

2.删除对话框模板上我们不需要的“OK”和“Cancel”按钮,然后将对话框的尺寸调整为230 x 40。

3.然后,我们对对话框的属性做一些必要的修改,使它更适合于用来显示进度条:Border – None, Style – Child, System Menu – False, Visible – True。

4.将对话框的ID修改为IDD_MAINDIALOG。

5.在对话框上添加一个图像控件(Picture Control)。将图像控件的尺寸调

整为200 x 20,然后将其ID修改为IDC_PROGRESSBAR。同时,将其颜色属性修改为白色(White)。

6.最后,我们需要为对话框资源创建一个新的类。在对话框资源上右键单击,在弹出的菜单中选择“Add Class”,在接着出现的“MFC类向导”对话框中,我们将新的类命名为CMainDialog,基类设置为CDialog,点击“Finish”完成类的

创建。

图3 创建新的对话框类CMainDialog

现在,我们来为这个新创建的对话框类添加成员变量。成员变量m_MainDialog 对应于类CMainDialog,而m_ProgressBar对应于我们刚刚添加的进度条显示控件。

1.为类CMyActiveXCtrl添加成员变量m_MainDialog。选择类视图,在类CMyActiveXCtrl的节点上点击右键,在上下文菜单中选择“Add”->“ Add Variable”,然后输入CMainDialog作为变量类型,输入m_MainDialog作为变量名。

2.跟上面的步骤一样,我们为类CMainDialog添加成员变量m_ProgressBar。输入CPictureEx作为变量类型,m_ProgressBar作为变量名。同时,选中“Control variable”复选框,使其成为一个控件变量。在“Control ID”下拉列表中,确认控件的ID为“IDC_PROGRESSBAR”。具体设置如下图4所示:

图4 添加成员变量m_ProgressBar

添加代码实现进度条的显示

现在,我们将添加代码实现主对话框和进度条控件的显示。

1.在类视图中,选中类CMyActiveXCtrl。然后在其属性页中选中消息(Messages)图标,在消息列表中,选择“WM_CREATE”消息,然后选择“ OnCreate”为WM_CREATE消息创建一个消息响应函数OnCreate。这样,向导就会为我们在类CMyActiveXCtrl中创建一个消息响应函数OnCreate。

2.编辑MyActiveXCtrl.cpp文件,将下列代码添加到我们刚刚创建的OnCreate函数中。这段代码将负责创建主对话框:

m_MainDialog.Create(IDD_MAINDIALOG, this);

然后,将下列代码添加到绘制函数OnDraw中,以实现对主对话框大小尺寸和

背景的修改:

m_MainDialog.MoveWindow(rcBounds, TRUE);

CBrush brBackGnd(TranslateColor(AmbientBackColor()));

pdc->FillRect(rcBounds, &brBackGnd);

3.同样的,我们为主对话框类CMainDialog添加创建消息WM_CREATE的

消息响应函数OnCreate。

4.编辑MainDialog.cpp文件,将下列代码添加到函数OnCreate中,以实

现进度条GIF图像的加载和绘制:

if(m_ProgressBar.Load(MAKEINTRESOURCE(IDR_PROGRESSBAR),_ T("GIF")))

m_ProgressBar.Draw();

最后,确认我们的配置文件是Release版本,构建生成MyActiveX整个解决方案。这样,我们就完成了整个ActiveX控件的创建。

第4页:为ActiveX控件创建网页

为ActiveX控件创建网页

光完成了ActiveX控件还不行,因为ActiveX控件无法单独运行,所以我们还需要为ActiveX控件创建相应的测试页面。如果想为我们的 ActiveX控件创建一个默认的测试页面,最佳的工具就是Microsoft ActiveX Control Pad。这是一个免费的工具,我们可以从微软的网站上下载得到。

我们需要下载ActiveX Control Pad并将它安装在我们的开发机器上。同时为了简化测试工作,我们还需要在同一台机器上安装微软的IIS服务器作为Web 服务器。

当我们第一次运行ActiveX Control Pad的时候,它将创建一个默认的HTML 页面。接下来,我们需要将ActiveX控件插入到这个页面中。在标签内的某个位置右键单击,选择“Insert ActiveX Control”,在弹出的“Insert ActiveX Control”对话框中,选中我们刚刚创建的ActiveX控件MyActiveX,然后点击“OK”关闭对话框,将ActiveX控件插入到页面中。

图5 插入ActiveX控件

ActiveX Control Pad提供了两个对话框,供我们对ActiveX控件的各个属性进行修改编辑。属性对话框用于修改ActiveX控件的各项属性。而“编辑ActiveX 控件(Edit ActiveX Control)”对话框用于手动地对ActiveX控件进行修改。当然,我们也可以不使用对话框,直接编辑HTML代码达到相同的效果。在代码中找到 OBJECT ID标签,如下图6所示,修改它的尺寸参数为

“WIDTH=350”和“HEIGHT=50”。完成代码的修改后,将这个文件保存

为 myactivex.htm,放置到IIS服务器的网站根目录wwwroot下。

图6 在ActiveX Control Pad中编辑页面

现在,我们就可以使用IE打开http://localhost/myactivex.htm对 ActiveX 控件进行测试了。在ActiveX控件加载的过程中,如果你得到一些警告消息,点击“OK”略过就可以了。正常情况下,你将看到页面中显示的一个进度条GIF 动画。如果你没有看到动画,或者是仅仅在ActiveX控件的位置显示一个红色的叉叉,这可能是你的浏览器的安全设置,阻止了ActiveX控件的加载和运行。要解决这个问题,请修改你的浏览器的安全设置,使其所有关于ActiveX的选项都在“允许(enabled)”状态。

图7 浏览器中的MyActiveX控件

接下来,我们将让我们的控件成为一个“签名的”或者是“安全的”控件,以此来解决在ActiveX控件加载过程中所产生的那些警告信息。

构建一个“签名的”ActiveX控件。要想创建一个“签名的”ActiveX控件,你必须从一些认证机构,例如Thawte,Verisign和 GeoTrust,获得代码签名证书(Code Signing Certificate)。通过这项服务,他们将对你进行认证同时为你提供用于对ActiveX控件进行签名的证书文件。这些用于应用程序签名的证书文件包括mycert.spc和mykey.pvk.两个文件。

为了对ActiveX应用程序进行签名,我们需要将这个程序的所有组件打包成CAB文件。这个CAB文件将被从网站上下载到目标机器上,然后 ActiveX控件会通过下载的CAB文件被安装到目标机器上。要启用这项功能,我们必须在ActiveX控件的版本信息VERSIONINFO结构体中定义OLESelfRegister变量。在VS 2003及其之前的Visual Studio之中,这一变量是被自动添加的。但是在Visual Studio 2005中,默认情况下VERSIONINFO结构体中并不包含这一变量,我们需要按照下面的示例手动添加OLESelfRegister这一变量:VS_VERSION_INFO VERSIONINFO

FILEVERSION 1,0,0,1

PRODUCTVERSION 1,0,0,1

FILEFLAGSMASK 0x3fL

#ifdef _DEBUG

FILEFLAGS 0x1L

#else

FILEFLAGS 0x0L

#endif

FILEOS 0x4L

FILETYPE 0x2L

FILESUBTYPE 0x0L

BEGIN

BLOCK "StringFileInfo"

BEGIN

BLOCK "040904e4"

BEGIN

VALUE "CompanyName", "TODO: "

VALUE "FileDescription", "TODO: "

VALUE "FileVersion", "1.0.0.1"

VALUE "InternalName", "MyActiveX.ocx"

VALUE "LegalCopyright",

"TODO: (c) . All rights reserved."

VALUE "OLESelfRegister", "\0"

VALUE "OriginalFilename", "MyActiveX.ocx"

VALUE "ProductName", "TODO: "

VALUE "ProductVersion", "1.0.0.1"

END

END

BLOCK "VarFileInfo"

BEGIN

VALUE "Translation", 0x409, 1252

END

END

在签名ActiveX控件之前,ActiveX控件应该被打包成CAB文件。这个CAB 文件同样还包含一个INF文件,它将用于安装你的ActiveX控件。要创建CAB 文件,你需要Microsoft Cabinet Software Development Kit中的cabarc.exe。下面的INF文件演示了如何将我们的MyActiveX控件打包到CAB 文件中。对于其中的CLSID,你需要将其修改为跟之前我们使用ActiveX Control Pad创建的HTML页面中OBJECT ID相同的值。

[Add.Code]

myactivex.ocx=myactivex.ocx

myactivex.inf=myactivex.inf

[myactivex.ocx]

file=thiscab

clsid={36299202-09EF-4ABF-ADB9-47C599DBE778} RegisterServer=yes

FileVersion=1,0,0,0

[myactivex.inf]

file=thiscab

我们可以通过下面的DOS命令创建CAB文件。这里需要注意的是:OCX文件和INF文件必须跟你所执行的cabarc.exe在同一个目录,否则CAB文件在被下载后将无法正确的解压缩。这也是一个导致ActiveX控件被显示为红色叉叉的重要原因。

cabarc -s 6144 N myactivex.cab myactivex.ocx myactivex.inf

要对我们刚刚创建的CAB文件进行签名,我们需要Microsoft MSDN为我们提供的工具signcode.exe 。(请查阅本文末尾与“Signing and Checking with Authenticode”相关的参考资料) 。通过这个工具,我们就可以用我们从认证机构获得的代码签名证书对CAB文件进行签名了。下面是一个使用signcode对myactivex.cab进行签名的例子:

signcode -n "myactivex" -i

https://www.360docs.net/doc/0815756295.html, -spc mycert.spc -v mykey.pvk -t

https://www.360docs.net/doc/0815756295.html,/scripts/timstamp.dll myactivex.cab

在上面的例子中,https://www.360docs.net/doc/0815756295.html,应该被替换成你的ActiveX 控件的说明页面,通过这个页面,你可以为用户提供更多的关于这个控件的信息。

要使用签名过后的CAB文件,首先我们需要将myactivex.cab复制到web 服务器的一个合适的目录下,然后我们修改Web页面中的OBJECT ID标签,添加一个参数CODEBASE指向CAB文件。具体代码如下图8所示。这样,当你再使用IE打开这个页面时,CAB文件会被下载,然后 ActiveX控件会被正确的安装到你的机器上。在安装的过程中,再也不会弹出提示未签名ActiveX 控件的警告信息了。

图8 添加CODEBASE参数

第5页:创建安全的ActiveX控件

创建安全的ActiveX控件

要想创建一个能够在IE中成功加载而没有“不安全”的警告或者错误提示信息的ActiveX控件,我们必须实现安全的初始化和脚本。关于安全初始化的更加详细的信息,请参考本文结尾的参考资料“Safe Initialization and Scripting for ActiveX Controls”。基本上,所有要做的工作都是在DllRegisterServer 和DllUnregisterServer这两个函数中完成的。下面,我们就来一步步地将我们的ActiveX控件变成一个“安全的”控件。

1.编辑MyActiveX.cpp并添加如下的代码。其中,CLSID_SafeItem的值应该跟MyActiveXCtrl.cpp中的 IMPLEMENT_OLECREATE_EX一致,这就

等同于你的ActiveX控件。同样,它也应该跟你的HTML页面中的OBJECT ID 标签中的CLSID一致。

#include "comcat.h"

#include "strsafe.h"

#include "objsafe.h"

// CLSID_SafeItem –安全的ActiveX控件所必须的内容

// ID的值跟xxxCtrl.cpp文件中的IMPLEMENT_OLECREATE_EX一致const CATID CLSID_SafeItem =

{ 0x36299202, 0x9ef, 0x4abf,{ 0xad, 0xb9, 0x47, 0xc5, 0x99, 0xdb, 0xe7, 0x78}};

// HRESULT CreateComponentCategory –用于注册安全的ActiveX控件HRESULT CreateComponentCategory(CATID catid, WCHAR

*catDescription)

{

ICatRegister *pcr = NULL ;

HRESULT hr = S_OK ;

hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,

NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister,

(void**)&pcr);

if (FAILED(hr))

return hr;

// 确认HKCR\Component Categories\{..catid...}键值被注册

CATEGORYINFO catinfo;

catinfo.catid = catid;

catinfo.lcid = 0x0409 ; // english

size_t len;

// 确认描述不是太长。

// 只复制开始的127个字符。

// StringCchLength的第二个参数表示被读入catDescription的最大字符数。 // 第三个参数表示字符串的长度

hr = StringCchLength(catDescription, STRSAFE_MAX_CCH, &len); if (SUCCEEDED(hr))

{

if (len>127)

{

len = 127;

}

}

else

{

// TODO: Write an error handler;

}

hr = StringCchCopy(catinfo.szDescription, len + 1, catDescription); // 添加字符串结束符.

catinfo.szDescription[len + 1] = '\0';

hr = pcr->RegisterCategories(1, &catinfo);

pcr->Release();

return hr;

}

// HRESULT RegisterCLSIDInCategory -

// 注册组件分类信息

HRESULT RegisterCLSIDInCategory(REFCLSID clsid, CATID catid) {

// 注册组件分类信息

ICatRegister *pcr = NULL ;

HRESULT hr = S_OK ;

hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,

NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void**)&pcr);

if (SUCCEEDED(hr))

{

CATID rgcatid[1] ;

rgcatid[0] = catid;

hr = pcr->RegisterClassImplCategories(clsid, 1, rgcatid);

}

if (pcr != NULL)

pcr->Release();

return hr;

}

// HRESULT UnRegisterCLSIDInCategory

HRESULT UnRegisterCLSIDInCategory(REFCLSID clsid, CATID catid) {

ICatRegister *pcr = NULL ;

HRESULT hr = S_OK ;

hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,

NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister,

(void**)&pcr);

if (SUCCEEDED(hr))

{

CATID rgcatid[1] ;

rgcatid[0] = catid;

hr = pcr->UnRegisterClassImplCategories(clsid, 1, rgcatid);

}

if (pcr != NULL)

pcr->Release();

return hr;

}

2.修改 DllRegisterServer函数:

STDAPI DllRegisterServer(void)

{

HRESULT hr; // HResult used by Safety Functions

AFX_MANAGE_STATE(_afxModuleAddrThis);

if (!AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid))

return ResultFromScode(SELFREG_E_TYPELIB);

if (!COleObjectFactoryEx::UpdateRegistryAll(TRUE))

return ResultFromScode(SELFREG_E_CLASS);

// 为初始化标记控件为安全控件

hr = CreateComponentCategory(CATID_SafeForInitializing, L"Controls safely initializable from persistent data!");

if (FAILED(hr))

return hr;

hr = RegisterCLSIDInCategory(CLSID_SafeItem,

CATID_SafeForInitializing);

if (FAILED(hr))

return hr;

// 为脚本标记控件为安全控件

hr =

CreateComponentCategory(CATID_SafeForScripting, L"Controls safely scriptable!");

if (FAILED(hr))

return hr;

hr =

RegisterCLSIDInCategory(CLSID_SafeItem, CATID _SafeForScripting);

if (FAILED(hr))

return hr;

return NOERROR;

}

3.修改 DllUnregisterServer函数:

STDAPI DllUnregisterServer(void)

{

HRESULT hr; // HResult used by Safety Functions

AFX_MANAGE_STATE(_afxModuleAddrThis);

if (!AfxOleUnregisterTypeLib(_tlid, _wVerMajor, _wVerMinor))

return ResultFromScode(SELFREG_E_TYPELIB);

if (!COleObjectFactoryEx::UpdateRegistryAll(FALSE))

return ResultFromScode(SELFREG_E_CLASS);

hr=UnRegisterCLSIDInCategory(CLSID_SafeItem,

CATID_SafeForInitializing);

if (FAILED(hr))

return hr;

hr=UnRegisterCLSIDInCategory(CLSID_SafeItem,

CATID_SafeForScripting);

if (FAILED(hr))

return hr;

return NOERROR;

}

第6页:ActiveX控件的属性,方法和事件

ActiveX控件的属性,方法和事件

ActiveX控件和Web页面之间的通信是通过ActiveX控件的属性,方法和事件来完成的。为了演示这些内容,我们需要创建一个带有输入框的页面。当页面上的“提交”按钮被点击后,输入的文本将通过一个输入参数自定义属性传递给ActiveX控件。然后,控件的一个函数将被调用,复制这些文本到一个输出参数自定义属性。接着,将触发一个事件,将这些文本显示到页面上。我们将通过下面这些步骤来实现这一ActiveX控件和Web页面之间的通信过程:

1.首先,我们将为ActiveX控件创建自定义属性,用于发送和接收文本。在类视图中,展开MyActiveXLib,然后选择 _DMyActiveX。右键单击

_DMyActiveX,在上下文菜单中选择“Add”->“Add Property”。在”添加属性向导”对话框中,选择BSTR作为属性类型,然后输入“InputParameter”作为属性的名称。至于对话框中的其它内容,向导将自动为我们生成。最后,点击“Finish”按钮关闭对话框,向导将为我们创建相应的代码。同样地,添加另外一个BSTR类型的属性 OutputParameter。

图9 添加属性向导

2.接下来,我们将创建一个方法,使Web页面能够通知控件将文本从输入参数传递到输出参数。在类视图中,展开MyActiveXLib,然后选择 _DMyActiveX。右键单击_DMyActiveX,在上下文菜单中选择“Add”->“ Add Method”。在“添加方法向导”对话框中,选择void作为方法的返回类型,输入“LoadParameter”作为方法名,向导会自动地填入“LoadParameter”作为外部名字。点击“Finish”按钮关闭对话框,向导将为我们创建相应的方法代码。

图10添加方法向导

3.现在,我们将创建一个事件,让ActiveX控件通知Web页面已经完成了文本从输入参数到输出参数的传送。Web页面中的代码将对这个事件做出响应,将输出参数中的文本显示出来以证明传送确实发生了。在类视图中,右键点击CMyActiveXCtrl,然后选择“Add”->“Add Event”。在“添加事件向导”对话框中,输入“ParameterLoaded”作为事件名称,然后将外部名称修改

为“FireParameterLoaded”。点击“Finish”按钮关闭对话框,向导将为我们创建相应的代码。

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.360docs.net/doc/0815756295.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.360docs.net/doc/0815756295.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,就是指定要卸载的程序

相关主题
相关文档
最新文档