① 网页中的ActiveX 控件,cab包中的INF文件怎么写
1、如果需要创建cab文件,首先需要Cabarc或者Makecab,它们随着Cabinet SDK的安装就有了,Cabinet SDK的下载地址是http://msdn.microsoft.com/workshop/management/cab/cabdl.asp。Cabarc可以创建、查看或者解出cab里面的文件,而Makecab则只可以用来创建cab文件。2、制作cab文件时需要将所有的相关文件都包含进去,可以通过Depends(VC自带的)检查需要的文件。使用inf文件将这些东西都写进去。3、inf搞法:inf文件描述cab中所有的ocx及dll文件,inf通过一些命名区域来提供需要的信息。怎么写inf最开始一般是[Version]区:eg: [Version] signature="$XXXX$" AdvancedINF=2.0接下来就是最重要的[Add.Code]区:eg: [Add.Code] Ctrl1.dll=C1Section Ctrl2.dll=Ctrl2.dll前面是要下载的文件名,后面是对应这个文件的区域名,可以是任何名字,不过一般都是和文件的名字相同,这样方便维护。还有需要注意是在[Add.Code]区出现的文件要根据依赖性进行排序,例如前面说的ctrl1.dll要依赖于ctrl2.dll,则ctrl2.dll要出现在ctrl1.dll的前面。因为安装时是按照相反的顺序进行的,也就是说先安装ctrl2.dll,然后才是ctrl1.dll,哧哧,记清楚了,不要搞反了。再接下来是各个文件的区域了[Ctrl1.dll]file-win32-x86=thiscabRegisterServer=yesclsid={…..}DestDir= FileVersion=1,0,0,0[Ctrl1.dll]区域中的第一个file值告诉ie到哪里去得到这个dll,file一共包括三个部分,第一部分是file,这个永远都是这样的(至少目前来说);第二部分告诉声明支持的OS,win32表示windows,mac就是苹果MAC OX了;第三部分是CPU类型,比如说x86、 ppc (Power PC)、 mips或者alpha了。file的值可以取三个一个URL、ignore和thiscab,如果是URL则说明到URL所在的位置去下;如果是ignore说明对于这种OS和CPU,不需要下载这个文件(ctrl1.dll);如果是thiscab很明显就在当前的cab文件中了。接下来是RegisterServer,可以取两个值yes和no,如果为yes则说明ie要注册该dll,如果是no就不必了;再下来是DestDir,它的值是dll将要存到本地硬盘的位置,如果它的值是10,则将dll放到\Windows或者\WinNT下;如果是11,则放到\Windows\System或者\WinNT\System32下;如果是空(就是没有值)则会放到\Windows或者\WinNT下的Downloaded Program Files目录下;最后是FileVersion,这个就比较明显了,说明了ctrl1.dll的版本号。有时候我们使用VB来开发控件的时候,需要将VB的虚拟机装上去,它需要一些其它的说明的,简单地讲一下吧:在[Add.Code]中增加一项MSVBVM60.DLL=MSVBVM60.DLL(以VB6为例)下面是MSVBVM60.DLL区域:[MSVBVM60.DLL]hook=MSVBVM60.cab_InstallerFileVersion=6,0,81,76FileVersion很明显,是版本号,就不再说发,就说说hook吧。hook区域是在安装的时候需要执行的区域,它分为两种,一种是有条件的,另外一种是无条件的,无条件的hook区域是必须执行的,反之则根据条件判断是否执行。以[Setup Hooks]标记的区域是无条件区域,如下所示[Setup Hooks] hookname=section-name[section-name]run=%EXTRACT_DIR%\setup.exe无条件区域常用来通过一个inf文件执行一个安装程序,这就是我们在资源管理器右键点击一个inf文件时在执行安装这样的菜单的原因了当ie下载了一个cab文件,如果文件中没有[Add.Code],则处理[Setup Hooks]区域,运行run所指定程序,哧哧,上面就是setup.exe;条件区域则为在一定条件下执行,前面为MSVBVM60.DLL指定的hook区域就是一个条件区域,如果在MSVBVM60.DLL指定的CLSID或者version不能满足需要而且没有file这个命名值,则执行hook所指定的区域。[MSVBVM60.cab_Installer]file-win32-x86=http://activex.microsoft.com/controls/vb6/VBRun60.cabrun=%EXTRACT_DIR%\VBRun60.exe上面[MSVBVM60.cab_Installer]是一个hook区域,它也包含了一个file值,指定一个URL,表示MSVBVM60.DLL可以从这个URL下载得到;run则说明了执行哪一个文件这里有必要说明一下的是,MS对一些常用的Redistributable Microsoft DLLs可以通过指定CODEBASE属性为http://activex.microsoft.com/controls,这样在cab文件中就中需要包含这些文件,在计算机上有一个文件redist.txt上面的dll就是Redistributable Microsoft DLLs创建一个cab文件:cabarc N ctrl1.cab ctrl1.inf ctrl1.dllN表示要创建一个新的文件,ctrl1.cab是创建的文件名,ctrl1.inf是cab的inf,后而是需要加到cab里的文件,可以使用通配符。然后就可以将cab文件放到网页上了<OBJECT ID="Ctrl1Obj" CLASSID="clsid:………………………………." CODEBASE="http://server.com/ctrl1.cab#version=8,0,0,5007"></OBJECT>这里也在一个version,不过这里的version是指控件的version,而inf里的是文件的version。制作电子签名:首先从下面的网址下载制作签名的工具SignCode,地址是http://msdn.microsoft.com/workshop/gallery/tools/authenticode/authcode.asp从签名授权中心如VeriSign或者你的局域网上运行的Microsoft Certificate Server授权服务器得到一个certificate,在申请授权的过程你会得到一个私钥。也可以使用MakeCert.exe和Cert2Spc.exe创建的私钥进行测试,方法是首先使用MakeCert创建一个X.509的certificate(.cer文件) MakeCert -sv MyKey.pvk n "CN=My Software Company" MyCert.cer然后利用Cert2Spc将.cer文件转换成为PKCS #7软件发布Certificate(.spc文件), Cert2Spc MyCert.cer MyCert.spc利用你下载的SignCode对你的cab文件进行电子签名 SignCode -spc MyCert.spc -v MyKey.pvk -t http:// timestamp.verisign.com/scripts/timstamp.dll ctrl1.cabSignCode还可以指定一些其它的参数,就不说了,太长了,哧哧。虽然可以利用测试的.cer和.spc文件,但是在发布的时候,必须申请。其实东西在SDK中都有说明,不过都是E文的,慢慢看就没有什么发
② vs2010如何生成cab
使用 tools 打包cab使用的工具集:vs2010 tools开始->所有程序->Microsoft Visual Studio2010-> Visual Studio Tools->Visual Studio命令提示(2010)(以管理员权限打开)1) cabarc 将ocx、dll打包成cab文件 Eg. cabarc -s 6144 n demo.cab atl90.dllPolygon.dll demo.inf2) inf文件的编写[version] signature="$CHICAGO$" AdvancedINF=2.0 [Add.Code] activexdemo1.ocx=activexdemo1.ocx[activexdemo1.ocx] file-win32-x86=thiscab clsid={A8533FAB-72A3-43E1-9B84-D95321F4A143} FileVersion=1,0,0,0 DestDir=11 RegisterServer=yes 3) makecer 制作证书文件 Eg.makecert -n "CN=Root" -r -svRootIssuer.pvk RootIssuer.cer4) signcode 给文件数字签名EG.signcode按着步骤走添加cab文件添加cer证书添加密钥……5) activeX插件安装升级 <object codebase="http://localhost/_edit.cab#version=1,1"CLASSID="CLSID:A8533FAB-72A3-43E1-9B84-D95321F4A143"…/> a)首先会判断系统中是否有classid为XXXX的该插件,如果没有,则提示用户下载并安装: b)如果系统中已经安装了该插件就会以#后的版本号和已安装的插件作比较,如果更高则自动下载高版本软件进行更新。
③ 我用C#开发了一个ActiveX控件,怎么生成.ocx文件
ActiveX控件文件有三种格式:1).ocx 2).exe 3).dll用C#开发的ActivX控件,只能实现后两种格式。后两种格式的ActiveX控件与.ocx格式的使用注册方法完全一样,即regsvr32 xxxx.exe或regsvr32 xxxx.dll
④ 如何注册ActiveX控件
[必备条件]一、用于将ActiveX控件进行打包并加数据鉴名的工具集:makecert.exe 作cer格式的证书,即X.509证书,同时可以创建私钥和公钥。cert2spc.exe 将cer格式证书转换成spc格式证书,即PKCS #7证书。cabarc.exe 将ocx打包成cab。signcode.exe 将证书签署到ocx上去。chktrust.exe 检查签署证书后的ocx是否正确。certmgr.exe 是管理证书用的。二、用于进行打包用的ocx控件evS1300.ocx。三、用于查看ocx控件的工具ActvxDoc。[制作过程]一、环境设置1、下载makeCAB包,解压到本地目录(如E盘根目录),如查看到如图1所示的工具集,则表示已下载成功:2、设置系统环境变量,右键单击“我的电脑”à选择“属性”à选择“高级”选项卡,打开系统属性面版块3、在系统属性版块里单击“环境变量(N)”按钮4、选择“系统变量(S)”里的“新建(W)”按钮,打开“编辑系统变量”对话框,然后在“变量值(V)”里加入“;E/makeCAB”:二、将用于打包的OCX控件放在E盘根目录下(本文档使用名为evS1300.ocx的控件来进行介绍),其中evS1300.ocx是本文档进行操作的控件对象,而mfc71.dll、msvcp71.dll、msvcr71.dll这三个文件通常是进行打包时一并打包的文件,但不是必须(推荐一起打包),其可在系统中的system32目录下找到,请自行准备。三、ActiveX发布步骤1、单击“开始”à“动行(R)”à输入“cmd”à回车à进入到操作的控件所在的目录,如图6所示:2、创建PVK文件(私人密匙文件),在命令行中输入“makecert -sk evS1300 evS1300.pvk -n CN=XXXXXXX公司”,然后回车3、创建CER文件(公司证书),在命令行中输入“makecert -sk evS1300.pvk evS1300.cer”,然后回车若出现“Successed”提示,则会在E:/evS1300目录下生成evS1300.cer文件4、创建SPC测试软件出版商证明书,在命令行中输入“cert2spc evS1300.cer evS1300.spc”,然后回车5、创建INF文件,用记录本编辑以下信息[version] signature="$CHINA$" AdvancedINF=1.0 [Add.Code] evS1300.ocx=evS1300.ocx msvcr71.dll=msvcr71.dll mfc71.dll=mfc71.dll msvcp71.dll=msvcp71.dll [evS1300.ocx] file=thiscab clsid={0440906E-9BD6-4F3E-B65A-39E1B339D9DA} FileVersion=1,0,0,0 RegisterServer=yes [msvcr71.dll] file-win32-x86=thiscab RegisterServer=no DestDir=11 FileVersion=7,10,3052,4 [mfc71.dll] file-win32-x86=thiscab RegisterServer=no DestDir=11 FileVersion=7,10,3077,0 [msvcp71.dll] file-win32-x86=thiscab RegisterServer=no DestDir=11 FileVersion=7,10,3077,0 在evS1300.inf的内容里,[version]和[Add.Code]项是必须的,[Add.Code]的键值项的多少取决于以下你所配制项的多少。[msvcr71.dll]、[mfc71.dll]、[msvcp71.dll]就是上面我所说不是必须的项,只要你想把msvcr71.dll、mfc71.dll、msvcp71.dll包括在发布包里,那这么三项就必须写在inf里,而这三项的具体内容是固定的,可复制过去即可。最为关键的就是[evS1300.ocx]项,其中有clsid和FileVersion就是evS1300.ocx的classId和version,这要求必须一至,否我们发布出去的CAB包时不能在客户端自动更新下载安装。说到这里,那我们如何才能知道evS1300.ocx里面的classId和version呢?我在上面的必备条件里介绍到有一个用于查看ocx控件的工具ActvxDoc,对,就是用它,我们双击这个文件运行它,此时可以看到图13所示的界面: 点击“File”à“Open…”,打开您所要查看的OCX控件打开了控件之后,我们在界面的右边部位“Class”的下拉框里选择“”就可以看到我们想要查找的FileVersion和classId,如图15所示:6、创建CAB文件,在命令行中输入“cabarc -s 6144 n evS1300.cab msvcr71.dll mfc71.dll msvcp71.dll evS1300.ocx evS1300.inf”,然后回车,7、使用Code Signing Wizard签署一个CAB文件,首先双击运行工具集里面的signcode.exe(或在命令行里直接输入“signcode”后回车),系统会弹出如图17所示的数字签名向导:8、单击“下一步(N)”按钮,选择要进行数字签名的且已做成CAB包的文件evS1300.cab文件。9、选择好CAB包后单击“下一步(N)”按钮,在选择想要的签名类型里选择“自定议(C)”并单击“下一步(N)”按钮 10、接下来单击“从文件选择(F)”按钮,选择刚刚制作的evS1300.cer11、在图20中单击“下一步(N)”按钮来到图21,然后在图21里选择“CSP中的私钥(K)”。12、在图21中单击“下一步(N)”按钮,然后在图22中的散列算法中选择“shal”,并单击“下一步(N)”按钮。13、在“证书路径中的证书”中选择“证书路径中的所有证书,包括根证书(C)”,在“其它证书(可选)”中选择“包括在以下PKCS #7 证书(.p7b)文件中的证书(P):”,并单击“浏览(R)…”按钮选择evS1300.spc文件,选择完后单击“下一步(N)”按钮14、接下来在弹出的“数据描述”窗口中输入公司的名称和网址并单击“下一步(N 15、现大部份工作都已完成,在接下来的一步当中是可选的操作,其作用只是为CAB加入时间戳,此步骤完全可以不做 16、完成,单击“下一步(N)”按钮便可来到数字签名向导的最后一步,即操作总览,单击“完成”按钮便可大功告成
⑤ 如何利用dll文件制作成activex控件
一、概述DLL(动态链接库): 分WIN32 DLL和MFC DLL ActiveX:分ATL控件和MFC控件两类(也是一个DLL) WEB:javaSCRIPT 调用-> ActiveX调用-> DLL 完成加法运算并返回值,在页面上显示。 二、开发(VS2008) 1、DLL 库编写: 文件-》新建-》WIN32控制台->填写项目名称-》选择DLL-》空项目-》完成。 (1)在解决方案面板中,加入一个头文件testdll.h,内容: 复制代码代码如下:#ifndef _DLLTUT_DLL_H_ #define _DLLTUT_DLL_H_ #if defined DLL_EXPORT #define DECLDIR __declspec(dllexport) #else #define DECLDIR __declspec(dllimport) #endif //extern "C"告诉编译器该部分可以在C/C++中使用。 extern "C" { DECLDIR int Add( int a, int b ); DECLDIR void Function( void ); } #endif (2)在解决方案面板中,加入一个实现文件testdll.cpp,内容: 复制代码代码如下:#include <iostream> #define DLL_EXPORT #include "testdll.h" extern "C" { // 这里主要用到 ADD 方法。 DECLDIR int Add( int a, int b ) { return( a + b ); } DECLDIR void Function( void ) { std::cout << "DLL Called!" << std::endl; } } (3)可选。新建一个WIN32控制台类,测试这个DLL。 文件-》新建-》WIN32控制台->填写项目名称-》选择控制台程序-》空项目-》完成。 在解决方案面板中,加入一个实现文件loaddll.cpp 内容: 复制代码代码如下:#include <iostream> #include <windows.h> using namespace std; typedef int (*AddFunc)(int,int); //定义指针函数、接口。 typedef void (*FunctionFunc)(); int main() { AddFunc _AddFunc; FunctionFunc _FunctionFunc; cout <<"—获取DLL—."<< endl; // L 表示使用UNICODE 字符集,要和项目的字符集保持一致。 HINSTANCE hInstLibrary = LoadLibrary(L"E:\\Project\\VS\\LoadDll\\Release\\TestDll.dll"); if (hInstLibrary == NULL) { cout <<"Dll 加载【失败】."<< endl; FreeLibrary(hInstLibrary); }else{ cout <<"Dll 加载【成功】."<< endl; } _AddFunc = (AddFunc)GetProcAddress(hInstLibrary, "Add"); _FunctionFunc = (FunctionFunc)GetProcAddress(hInstLibrary, "Function"); if ((_AddFunc == NULL) || (_FunctionFunc == NULL)) { FreeLibrary(hInstLibrary);//释放 }else{ cout <<"—获取DLL函数【OK】—."<< endl; } cout << _AddFunc(1, 1) << endl; // 开始调用 _FunctionFunc(); // cin.get(); // 获得焦点,这样就不会程序就不会一闪而过了。 FreeLibrary(hInstLibrary);//调用完后,要释放内存。 return(1); } 2、ActiveX 控件实现: 这里我们选择ATL控件实现,而非MFC ActiveX。 文件-》新建-》ATL项目->填写项目名称(“FROMYANTAI”)-》选择动态链接库(DLL)-》完成。 完成后,会在右边“解决方案资源管理器”生成很多头H文件和CPP实现文件,这些都是默认的不要修改。 (1)、添加一个ALT简单对象:鼠标邮件点击项目名称(刚才起的名字)选择-》添加类-》选择ATL简单对象。 下一步起一个名字:“ytiicrj”—》下一步:其他不变,在支持中,选择“连接点”和“IE对象支持”—》完成。 下一步给“ytiicrj”添加一个方法,以便WEB页面调用。在“类视图”选择“iytiicrj”(有个灰色的钥匙图标)鼠标右键添加-》添加方法。方法起名为“GetContent”-》参数属性选择IN,参数类型选择LONG 参数名 A –》添加;继续;参数属性选择IN,参数类型选择LONG 参数名 B –》添加;继续;参数属性选择OUT和RETVAL ,参数类型选择LONG* 参数名 out –》添加—》 点击完成。 这样就在ytiicrj.H头文件中添加了一个(在最后一行): STDMETHOD(GetContent)(LONG a, LONG b, LONG* out); 并在ytiicrj.CPP文件中添加了一个实现类: 复制代码代码如下:STDMETHODIMP CCaluNumCtrl::GetContent(LONG a, LONG b, LONG* out) { // TODO: 在此添加实现代码 return S_OK; } (2)、在ytiicrj.H 文件中,调用DLL类库。代码如下: // CaluNumCtrl.h : ytiicrj 的声明 黑体(粗体)部分是具体的实现,其他未动。 复制代码代码如下:#pragma once #include "resource.h" // 主符号 #include <windows.h> //添加 #include "AtlActiveX_i.h" #include "_ICaluNumCtrlEvents_CP.h" #if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA) #error "Windows CE 平台(如不提供完全DCOM 支持的Windows Mobile 平台)上无法正确支持单线程COM 对象。定义_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA 可强制ATL 支持创建单线程COM 对象实现并允许使用其单线程COM 对象实现。rgs 文件中的线程模型已被设置为“Free”,原因是该模型是非DCOM Windows CE 平台支持的唯一线程模型。" #endif // ytiicrj class ATL_NO_VTABLE Cytiicrj : //增加一下一行:安全提示解除,–当运行浏览器调用时,不会提示安全问题。 public IObjectSafetyImpl<Cytiicrj, INTERFACESAFE_FOR_UNTRUSTED_CALLER| INTERFACESAFE_FOR_UNTRUSTED_DATA>, public CComObjectRootEx<CComSingleThreadModel>, public CComCoClass<Cytiicrj, &CLSID_CaluNumCtrl>, public IConnectionPointContainerImpl<Cytiicrj>, public CProxy_ICaluNumCtrlEvents<Cytiicrj>, public IObjectWithSiteImpl<Cytiicrj>, public IDispatchImpl<ICaluNumCtrl, &IID_ICaluNumCtrl, &LIBID_AtlActiveXLib, 1, 0> { public: //以下三行实现定义。 typedef int (*AddFunc)(int,int); //类型定义,对应DLL ADD方法。Func自定义,随便写。 HINSTANCE hInstLibrary; AddFunc _AddFunc; //类映射 Cytiicrj() { //开始调用DLL,进行计算。 hInstLibrary = LoadLibrary(L"TestDll.dll");//把写好的DLL文件放在此项目生成的目录下 if (hInstLibrary == NULL) { FreeLibrary(hInstLibrary);//资源释放 }else{ } //调用方法,返回方法句柄。 _AddFunc = (AddFunc)GetProcAddress(hInstLibrary, "Add"); } DECLARE_REGISTRY_RESOURCEID(IDR_CALUNUMCTRL) BEGIN_COM_MAP(Cytiicrj) COM_INTERFACE_ENTRY(ICaluNumCtrl) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(IConnectionPointContainer) COM_INTERFACE_ENTRY(IObjectWithSite) //增加一下一行:安全提示解除,–当运行浏览器调用时,不会提示安全问题。 COM_INTERFACE_ENTRY(IObjectSafety) END_COM_MAP() BEGIN_CONNECTION_POINT_MAP(Cytiicrj) CONNECTION_POINT_ENTRY(__uuidof(_ICaluNumCtrlEvents)) END_CONNECTION_POINT_MAP() DECLARE_PROTECT_FINAL_CONSTRUCT() HRESULT FinalConstruct() { return S_OK; } void FinalRelease() { FreeLibrary(hInstLibrary); } public: STDMETHOD(GetContent)(LONG a, LONG b, LONG* out); }; OBJECT_ENTRY_AUTO(__uuidof(CaluNumCtrl), Cytiicrj) (3)、回到在ytiicrj.PP 文件中,添加实现代码如下: 复制代码代码如下:STDMETHODIMP CCaluNumCtrl::GetContent(LONG a, LONG b, LONG* out) { // TODO: 在此添加实现代码 int sum = this->_AddFunc(static_cast<int>(a),static_cast<int>(b)); *out = static_cast<LONG>(sum); this->_AtlFinalRelease(); return S_OK; } (4)、生成DLL: 这步很简单,选择 Release模式,点击项目进行生成(会提示选择REG32注册,那就选择被)。这样就在Release目录下生成了很多文件,我们要的就是一个DLL文件。 3、DLL和 ATL ActiveX 控件DLL 打包为CAB文件: 例如:生成test.CAB后,WEB页面就会提示下载安装。 (1)首先定义setup.inf文件:它描述了下载的内容和目标目录还有版本号及相应的DLL文件。这个要手动编写的,我的内容如下(对应名称自行修改吧): 复制代码代码如下:[version] ; version signature (same for both NT and Win95) do not remove signature="$CHICAGO$" AdvancedINF=2.0 [Add.Code] AtlActiveX.dll=AtlActiveX.dll TestDll.dll=TestDll.dll setup.inf=setup.inf [install.files] AtlActiveX.dll=AtlActiveX.dll TestDll.dll=TestDll.dll setup.inf=setup.inf [AtlActiveX.dll] clsid={4AE870B5-C7FB-4171-A47E-7F57AFD86F67} file-win32-x86=thiscab FileVersion=1,0,0,1 DestDir=11 RegisterServer=yes [TestDll.dll] file-win32-x86=thiscab DestDir=11 FileVersion=1,0,0,1 RegisterServer=yes [setup.inf] file=thiscab [RegisterFiles] %11%\AtlActiveX.dll ; end of INF file (2)整合资源: 将所用到的DLL全部放到一个目录下包括setup.inf文件,然后在开始运行:IExpress 命令去生成CAB包。 运行后,选择第一个,下一步,选择第三个,下一步,添加文件(选择你的DLL和INF文件),下一步,选择一个输出目录并创建一个CAB文件名,再选择第二个选项,下一步,选择第二个选项,然后OK。这样就生成了一个CAB文件。 (3)WEB页面调用 ActiveX 控件 进行加法运算 : 写一个test.htm网页和CAB文件放在一个目录,test.htm内容如下: 复制代码代码如下:<HTML> <HEAD> <TITLE>New Page</TITLE> <OBJECT id=CaluNumCtrl align="CENTER" WIDTH=0 HEIGHT=0 codeBase="test.CAB#version=9,0,0,1" classid="CLSID:B6D4B406-9CC4-4C80-B7A2-248BBB07F682"></OBJECT> <script language="javascript"> function doTest() { var sum = CaluNumCtrl.GetContent(1,1); alert(sum); } </script> </HEAD> <BODY> <input type="button" value="renjie" id="btnOK" onclick="doTest();"></input> </BODY> </HTML> 说明: codeBase="test.CAB#version=9,0,0,1" codeBase表示文件相对或者绝对路径;version表示版本号,如果这个号和INF文件的版本号一样,那么第二次访问页面就不会下载,否则每次都下载。CLSID 是 ActiveX 项目生成的序号,具体可以在项目的*.rgs 文件中找到。 好了。所有的步骤都完成了,这时你运行test.htm,提示ActiveX控件,你选择允许,然后就可以调用加法运算了。
⑥ 我编写了一个Active Dll控件,想让客户端的用户点击确认后自动下载安装注册这些组件(在网页中)
这个是不可以的。。。因为 activex组建 要通过微软认证才可以自动下载安装的而这个数字签名是要花钱的 而且价格不菲我以前也碰到这问题 不过我是给特定用户使用,所以 给放出了个exe文件,下载后需要点击执行才可以注册 要是activex的话务必要弄到数字证书,,,我弄的是免费的,可以使用,不过不能在线安装,要是实现这个功能可能就需要花钱了
⑦ 如何制作cab文件
CAB(Cabinet)文抄件是一种压缩格式文件,一个CAB文件包含一个或多个文件及其安装信息文件(比如,需要安装哪些DLL文件、哪些图片资源等,以及注册表信息等等)的压缩版本。 如果您计划通过Internet分发 MFC控件和ATL 控件,您应该将其打包成签署的小巧(Cabinet -CAB) 文件,并使用签名确保用户下载您的控件是安全的。
⑧ 如何创建CAB文件
Cabman 2003 4.1介绍: 可以查看、解开、制作CAB格式的压缩文件,并且可以制作自解压文件(*.EXE)。 http://www.arongsoft.com/sort_201/18192.html GFC Cab Control 1.0 http://www.arongsoft.com/sort_212/15985.html ActiveX 控件,可以让你创建和摘录 CAB 文件。它包括一个稳定快速的搜索引擎,用于压缩和解压缩。GFC Cab 控件支持如下的压缩模式:MSZIP,LZX。此外,因为 CAB 文件的扩展名可以是任意的,你可以使用该控件来编写数据文件的代码。 CAB Station 1.0 http://www.arongsoft.com/sort_201/17269.html CAB 压缩和解压缩工具。CAB 文件格式是由Microsoft创建的。CAB 文件格式比传统的ZIP文件格式有更高的压缩比。
⑨ 怎么将ocx文件以及第三方dll文件打包成cab文件
*.ocx*.dll*.cab文件进入系统。麻烦:*.ocx*.dll*.cab文件利用企业级防火墙可以,某些局域网控制软件应该也行使用360安全浏览器,用“