Delphi 发布ActiveX控件 数字签名(转)
原作者:光明兄弟
最近我正在研究ActiveX技术。我使用Delphi 7创建了一个具有ActiveForm的ActiveX控件应用程序。这个控件产生一个.OCX文件。现在,我需要把这个控件部署在服务器端,在用户浏览网页并选择安装这个控件的时候,用户的IE才会下载、安装并显示这个控件。
但是我的控件必须作数字签名以后,IE才会下载安装。问题是如何给ActiveX控件作数字签名呢?现将具体步骤与大家分享。
首先我需要一套做数字签名的工具。如果你没有,可以到以下地址下载:
http://files.cnblogs.com/babyt/SignTool.rar
控件的名字是CustForm.ocx。首先,我们需要创建一个.CAB文件用来把所有需要发布的文件压缩在一起。我们需要一起发布的文件是CustForm.lic文件。它是Delphi在我们创建控件工程的时候为我们生成的。如果不发布这个文件,你的控件即使下载安装成功,IE也无法显示它。
为了在一个.CAB文件中发布多个文件,我们必须先创建一个.INF文件。一个.INF文件可以告诉IE,它需要下载的文件和在哪里可以得到这些文件。
1. 创建.INF文件
创建一个.INF文件很简单,用记事本程序编写就可以了。我们把我们的.INF文件取名为GMTestX.inf。因为我们要在.CAB文件中放入GMTest.ocx和GMTest.lic这两个文件,所以我们的.INF文件的内容如下:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[version]
signature="$CHICAGO$"
dvancedINF=2.0
[Add.Code]
CustForm.ocx=CustForm.ocx
CustForm.lic=CustForm.lic //如果创建Active Form时没有选择Make Conctrol Lincensed 则不会产生.lic文件,那么创建.inf文件时可去掉此行
[CustForm.ocx]
file-win32-x86=thiscab
clsid={C504DF79-C5EC-4314-AC3E-1F770DB81A01}
FileVersion=1,0,0,0
RegisterServer=yes
[CustForm.lic]//如果创建Active Form时没有选择Make Conctrol Lincensed 则不会产生.lic文件,那么创建.inf文件时可去掉此行
file-win32-x86=thiscab//如果创建Active Form时没有选择Make Conctrol Lincensed 则不会产生.lic文件,那么创建.inf文件时可去掉此行
FileVersion=1,0,0,0//如果创建Active Form时没有选择Make Conctrol Lincensed 则不会产生.lic文件,那么创建.inf文件时可去掉此行
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
在这个.INF文件的[version]部分有两句代码。signature="$CHICAGO$"表示这个.INF文件和Windows95或其后版本和Windows NT 4.0或其后的版本兼容。AdvancedI
相关文档:
delphi 编写的com 对象 用php调用
的
实例
delphi:
function Tmyxml.Get_xml: WideString;
begin
Get_xml:='wo shi a lei!';
end;
function Tmyxml.Get_xmldata: WideString;
var
xmlStr:string;
begin
xmlStr := '<?xml version="1.0" & ......
Procedure TForm1.Button1Click(Sender: TObject);
Var
xmlstr,FileName: String;
f: Textfile;
Begin
xmlStr := '<?xml version="1.0" encoding="gb2312"?>';
xmlstr := xmlstr + '<user><name>张三</name><sex>男</sex></user>';
sh ......
delphi 编写的com 对象 用delphi 的调用实例
COM 对象与 前一篇文章的 PHP调用的COM为同一个对象,故不例出COM.
procedure TForm1.Button4Click(Sender: TObject);
var
myCounter, mReturn: variant;
begin
myCounter := CreateOleObject('abc.myxml');
mReturn := myCounter.xml;
&nbs ......
1、TStringList支持的最大行数是多少?(http://topic.csdn.net/t/20060209/14/4547405.html)
楼主结论:“TStringList的LoadfromFile函数应该只能读取15万行以内的数据,但TStringList和TList的Add函数可以加到几百万行(甚至更多)也不会出错。程序出错的原因应该是Add非法内存指针导致的,正如tanlim(求学者) &nb ......
DELPHI
//////////////////////////////////
Function EncrypKey (Src:String; Key:String):string;
var
idx :integer;
KeyLen :Integer;
KeyPos :Integer; &nbs ......