怎样给 ActiveX 控件签名并打包发布

时间:2021-09-23 21:02:35
必备工具:  CabArc.Exe  Cert2Spc.Exe  makecert.exe  SetReg.Exe  signtool.exe (或者 signcode.exe)   以及相关动态库,以上文件可到微软网站下载: http://www.microsoft.com/msdownload/platformsdk/sdkupdate/default.htm?p=/msdownload/platformsdk/sdkupdate/SDKInfo.htm   安装 Internet Development SDK 后,  第一步 建立一个 .inf 文件,样式如下: [version] signature="$CHICAGO$" AdvancedINF=2.0 [Add.Code] time.ocx=time.ocx msvcrt.dll=msvcrt.dll mfc42.dll=mfc42.dll olepro32.dll=olepro32.dll [time.ocx] file-win32-x86=thiscab clsid={DCF0768D-BA7A-101A-B57A-0000C0C3ED5F} FileVersion=1,0,0,0 ;DestDir=11 ;*** RegisterServer=yes [msvcrt.dll] FileVersion=4,20,0,6164 hook=mfc42installer [mfc42.dll] FileVersion=4,2,0,6256 hook=mfc42installer [olepro32.dll] FileVersion=4,2,0,6068 hook=mfc42installer [mfc42installer] file-win32-x86=http://activex.microsoft.com/controls/vc/mfc42.cab run=%EXTRACT_DIR%\mfc42.exe 注释:此 INF 文件指定需要在系统上安装给定版本的 ATL.DLL。如果 ATL.DLL 尚未存在于系统中,它将从用此 INF 创建的 CAB 文件中下载。“thiscab”是一个关键字,表示 CAB 包含此 INF。也可通过指定一条绝对或相对路径,从一个 HTTP 位置下载所需的 DLL,例如: "thiscab" 是一个关键字,意指包含该INF的CAB文件。也可以从网上下载所需要的DLL文件,只要指定一个HTTP 网址即可,如: file-win32-x86=http://www.mysite.com/mydir/NEEDED.DLL 关键字"file-win32-x86" 指定平台是 x86。文件版本号可见属性。 "DestDir"指的是装载目录或者文件的地址: 11 指定为系统目录 WINDOWS/ /SYSTEM32; "clsid" 指的是要安装控件的CLSID。 DestDir 可以=10 :Windows 目录,  11 :Windows\System(32) 目录,  空 :Occache directory   第二步 将 ActiveX 控件及 .inf 文件打包进 .cab,命令如下: 运行 CABARC 实用工具可在 Mssdk\Bin 目录中找到 CABARC 实用工具。例如: C:\MSSDK\BIN\CABARC -s 6144 n MYCTL.CAB NEEDED1.DLL NEEDED2.DLL MYCTL.OCX MYCTL.INF CABARC 创建一个称为 MYCTL.CAB 的 CAB 文件。 应在包含源文件(INF、OCX 和 DLL 文件)的目录下运行 CABARC。将在 CAB 文件中存档的文件应该按它们在 INF 文件中列出的同一顺序在命令行中列出。在上面的示例中,INF 文件应该将 NEEDED1.DLL 列在第一位,接下来是 NEEDED2.DLL,然后是 MYCTL.OCX。cabarc.exe -s 6144 N yourActiveX.cab yourActiveX.ocx yourActiveX.inf  第三步 给 .cab 文件签名 1. setreg 1 true 2. makecert newCert.cer -sv privatekey.pvk 生成 newCert.cer 和 privatekey.pvk 两个文件3. Cert2Spc newCert.cer newCert.spc 4. signtool signwizard 有图形界面的签名向导,按提示指定有关文件路径即可,其中的描述是控件的描述。

8 个解决方案

#1


up

#2


楼主想说明什么呢?

如果是分享自己的成果,那么我要说:这个方法微软知识库里有的,而且这个签名不是真正意义上的签名,网页还是会提示控件未签名的,真正的签名要去买
这种cab包放在网页上安装时还必须有lpk文件

#3


收藏

#4


引用 2 楼 palmax 的回复:
楼主想说明什么呢? 

如果是分享自己的成果,那么我要说:这个方法微软知识库里有的,而且这个签名不是真正意义上的签名,网页还是会提示控件未签名的,真正的签名要去买 
这种cab包放在网页上安装时还必须有lpk文件

Good!!!

#5


顶·!

#6


顶·!

#7


顶!

#8


ding

#1


up

#2


楼主想说明什么呢?

如果是分享自己的成果,那么我要说:这个方法微软知识库里有的,而且这个签名不是真正意义上的签名,网页还是会提示控件未签名的,真正的签名要去买
这种cab包放在网页上安装时还必须有lpk文件

#3


收藏

#4


引用 2 楼 palmax 的回复:
楼主想说明什么呢? 

如果是分享自己的成果,那么我要说:这个方法微软知识库里有的,而且这个签名不是真正意义上的签名,网页还是会提示控件未签名的,真正的签名要去买 
这种cab包放在网页上安装时还必须有lpk文件

Good!!!

#5


顶·!

#6


顶·!

#7


顶!

#8


ding