从ocx控件编写到发布到网上全过程Word格式.docx
- 文档编号:16217043
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:15
- 大小:349.17KB
从ocx控件编写到发布到网上全过程Word格式.docx
《从ocx控件编写到发布到网上全过程Word格式.docx》由会员分享,可在线阅读,更多相关《从ocx控件编写到发布到网上全过程Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
二:
ActiveX打包与发布
1)用到的工具如下所示:
1.Makecert.exe---证书创建工具
2.Cert2Spc.exe---发行者证书测试工具
3.Signcode.exe---文件签名工具
2)ActiveX发布步骤
打包activeX需要制作证书,具体用到makecert、cert2spc、signtool这三个工具,另外需要:
digsig.dll和signer.dll。
现在我们将以上工具和.ocx控件放到同一个目录c:
\test下.
(1)单击"
开始"
-->
"
运行(R)"
输入"
cmd"
回车-->
进入到操作的控件所在的目录(需要将上面所说的工具,和ocx控件放到一个文件夹下);
(2)创建inf文件,代码如下
[version]
signature="
$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
test.ocx=test.ocx
[test.ocx]
file-win32-x86=thiscab
RegisterServer=yes
clsid={B649E664-D7CF-4481-A58E-AC8B4440794A}
DestDir=11
FileVersion=1,0,0,1
上述代码解释如下:
file-win32-x86=thiscab
//告诉ie到哪里去得到这个dll,file一共包括三个部分,第一部分是file,这个永远都是这样的(至少目前来说);
第二部分告诉声明支持的OS,win32表示windows,mac就是苹果MAC
OX了;
第三部分是CPU类型,比如说x86、
ppc
(Power
PC)、
mips或者alpha了
。
其中“thiscab”是一个关键字,表示
CAB
包含此
DLL,也可通过指定一条绝对或相对路径,从一个
HTTP
位置下载所需的
DLL,
例如:
file-win32-x86=
clsid={B649E664-D7CF-4481-A58E-AC8B4440794A}
//“clsid”是将要安装的控件的
CLSID
,
如何获得呢------
DestDir=11
//它的值是dll将要存到本地硬盘的位置,如果它的值是10,则将dll放到\Windows或者\WinNT下;
如果是11,则放到\Windows\System或者\WinNT\System32下;
如果未指定任何
DestDir(典型情况),则代码安装在固定的
OCCACHE
目录中。
//说明了atl90.dll的版本号
(3)将inf和dll打包成cab
cabarc
n
test.cab
test.inf
test.ocx这样就将其打包成test.cab,我是用“iexpress“生成的,在c:
\windows\system32下面有。
要进入这个路径打开,或者在运行里直接输入:
iexpress打开,复制出来是打不开的。
(4)生成cert证书
为得到签名用的spc格式
makecert
/sv
test.pvk"
/n
cn=test"
-$"
individual"
–r
test.cer
不加红色字,最后生成数字签名的时候,会出现“windows不能构建证书路径”.
makecert/sv"
Record.PVK"
/n"
CN=公司名称,E=email,O=作者"
dream.cer
执行过程中会要求输入密码,密码要一致,如下图所示
(5)生成.spc文件
cert2spc
test.cer
test.spc之后,就在其目录中多了一个test.spc文件
(6)对cab文件进行签名
运行singcodesignwizard,此时会弹出对话框,操作如图所示:
直接按下一步
找到指定目录下的.cab文件
选择自定义
选择“从文件选择”选项
下一步
按浏览找到.pvk文件
选择md5
;
默认直接按下一步
不填,下一步
按完成
(7)
下面是一个嵌有ActiveX控件test的HTML代码示例:
<
HTML>
<
HEAD>
TITLE>
NewPage<
/TITLE>
/HEAD>
BODY>
objectclassid="
clsid:
BFB6032F-6F8D-4B7F-B0B3-6303D08348A4"
id="
test"
CODEBASE="
WIDTH=400
HEIGHT=200
ALIGN=center
/object>
/BODY>
/HTML>
千万要注意:
classid是可以从注册表中查到,也可以从vc源代码中获取,打开test.odl文件,id如下所示:
这样,一个网页就创建成功啦!
!
最后,c:
\test中有如下文件:
打开test.htm网页显示结果如下:
三:
网页中参数传递
接下来,来完成最核心的东西,从网页中传递参数到控件显示:
修改html代码如下:
MyActiveX-Methods,Properties,andEvents<
SCRIPTLANGUAGE="
JavaScript"
>
functionPassParameter()
{
if(StringInput.value!
="
"
)
{
test.GetStr(StringInput.value);
}
}
/SCRIPT>
center>
MyActiveX-Methods,Properties,andEventsExample
p>
/p>
OBJECTID="
WIDTH=350HEIGHT=50
CLASSID="
CLSID:
BFB6032F-6F8D-4B7F-B0B3-6303D08348A4"
PARAMNAME="
_Version"
VALUE="
65536"
_ExtentX"
2646"
_ExtentY"
1323"
_StockProps"
0"
/OBJECT>
InputParameter:
INPUTTYPE="
text"
NAME="
StringInput"
INPUTTYPE="
button"
Submit"
ONCLICK=PassParameter()>
/center>
如上述代码所示,我们在JavaScript中写入函数PassParameter,该函数调用了控件中的方法GetStr,
当鼠标点击按钮submit时,就会调用该函数,进而间接调用该方法。
在编辑框中输入hello,单击submit,显示结果如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ocx 控件 编写 发布 网上 全过程