关于activeform的问题 我做了个activeform的客户端,在自己的机器上能正确的执行,可在局域网中别的机器中就不能正确执行,当在别的机器中应IE浏览是虽然下载了activex.但说数据模块连接有问题,请问是怎么回事,是不是还应该在别的机器上配置其他的文件比如midas.dll之类的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 下载midas.dll到system32下,并且IE的级别降低 Midas.dll是一定要用的你可以在ActiveForm的Initialize过程中从服务器下载你需要的文件。如果客户端还要配置,那搞这个有什么好处呢?是吧? 我做成功了,但不能用dcom连要用stockt连,具体原因我就不知道了 假如在activeform中,数据库我是连接本机的d:\db.mdb,那么到了客户端,它是连接我服务器的D:\DB.mdb呢还是连接它本机的?是否考了midas.dll就可以连我WEB服务器的路径了? 开始我也使用activeform来连结远程服务器,我的经验是:用dcom连接配置'十分麻烦,经常出一些莫名错误,像‘interface not supported’、‘dax error’,既跟操作系统有关系,又跟dcom设置有关系,还跟客户端与服务器的操作系统差别有关系。无已经改用 socket连结。 这个帖子好,我也在郁闷这个事情,我作的三层结构,主要是实现客户端"零维护",你说如果还要拷贝MIDAS.dll,那不是很痛苦,我认为主要原因,就是使用了TClientDataset.如果在ActiveForm中不用TClientDataset的话,和服务端通信又是很困难的.楼上的"lsxjf(云飞)",或许你的方法是个好方法,能否把具体的代码,写给大家看一看? 你可以在unit里面uses midaslib,静态编译midas.dll 楼上的这位仁兄theone_jxm() ,我加了这个midaslib,之后,我的机器里没有这个文件呀,总是提示找不到midaslib.dcu,这是什么原因?请帮助!多谢! 使用Midas的activeform 自动安装、注册,去除安全警告这是针对BCB的,但是除实现脚本安全和初始化安全代码外,其他都一样一 用代码在ocx中实现脚本安全和初始化安全,很简单,在*impl.h文件中在class ATL_NO_VTABLE...中添加如下语句//以下为增加的,标记为脚本安全和初始化安全BEGIN_CATEGORY_MAP(TSaftTestImpl) IMPLEMENTED_CATEGORY(CATID_SafeForScripting) IMPLEMENTED_CATEGORY(CATID_SafeForInitializing)END_CATEGORY_MAP()一 实现数字签名,如果你有钱,你可以申请正式的数字签名,否则可以采用如下做法,虽然下载安装控件时会警告无信任根,但在IE默认安全设置下载和运行完全没有问题,不会有安全警告。1、创建一个自己的证书文件: makecert /sv "Record.PVK" /n "CN=SinoWave" dream.cer这里,Record.PVK表示新创建的私人密钥保存文件名 SinoWave是你想显示的公司名 dream.cer是你创建最后的证书文件名 这些根据你自己的要求填写,最后得到Record.PVK和dream.cer两个文件。其中,运行过程中需要输入私人密钥的保护密码(sw),一定要输入一致,不要出错。2、转换cer格式为spc格式(可以省略),得到dream.spc文件。 cert2spc dream.cer dream.spc3、用VS6工具中的 cabarc生成internet分发的CAB包,cabarc.exe N DataTransfer.cab DataTransfer.ocx4、同时制作分发代码(.htm,其中包含使IE可以自动下载安装包的代码)。 现在得到了2个文件DataTransfer.CAB和DataTransfer.htm。.htm中包含类似如下的代码:<OBJECT ID=" DataTransfer " CLASSID="CLSID: CA466D54-0684-49D2-B0C3-DD7E09EA76D3" CODEBASE="http://192.9.200.8/DataTransfer.CAB#version=1,0,0,0"></OBJECT>5、给CAB文件签名 运行signcode,signcode运行后会出现数字签名向导,首先选DataTransfer.CAB,下一步后会出现签名选项,一种是典型,一种是自定义。选择自定义,这样才能从文件选择证书,选择前面制作的dream.spc,再下一步是选择私钥文件,选择Record.PVK,输入私人密钥的保护密码,选择散列算法,一般用md5就可以了,下一步是选择其他证书,直接下一步,填写一下这个控件的声明,用户用ie浏览的时候,会弹出证书说明,再下一步是加盖时间戳,例如http://timestamp.sheca.com/timestamp,加盖时间戳要联在网上,不过不盖也没什么影响 6、用chktrust检查是否正确 chktrust -v DataTransfer.CAB7、将签名后的DataTransfer.CAB和DataTransfer.htm复制到IIS的某个目录下。并在IE中打开DataTransfer.htm文件进行测试。三 如果你用到附加文件,如使用midas,将附加文件和*.inf文件一起打包,对cab签名。htm文件中codebase指向cab。注意一定要将*.inf文件一起打包,否则无法注册 delphi调用暴风影音插件 如何解决DLL里的invalid pointer operation问题? FastReport使用问题 quickreport内的报表字段太多,如何做分页打印 adoconnection问题 一铁哥们要为人父了,叫我帮小孙子取个名,姓廖,同志们出出主意吧! 打印时怎样格式化? delphi用ado通过odbc走system dsn连接access,可以正常读数据,但是修改和写的时候抛异常:读写内存无效,ado15.dll错误如何解决? 请问: ADOCOmmand不执行? 怎样对计算字段排序?20分 小简单, 啧啧怪事!
你可以在ActiveForm的Initialize过程中从服务器下载你需要的文件。
如果客户端还要配置,那搞这个有什么好处呢?是吧?
麻烦,经常出一些莫名错误,像‘interface not supported’、‘dax error’
,既跟操作系统有关系,又跟dcom设置有关系,还跟客户端与服务器的操作系统差别有关系。无已经改用 socket连结。
这是针对BCB的,但是除实现脚本安全和初始化安全代码外,其他都一样一 用代码在ocx中实现脚本安全和初始化安全,很简单,在*impl.h文件中在class ATL_NO_VTABLE...中添加如下语句//以下为增加的,标记为脚本安全和初始化安全
BEGIN_CATEGORY_MAP(TSaftTestImpl)
IMPLEMENTED_CATEGORY(CATID_SafeForScripting)
IMPLEMENTED_CATEGORY(CATID_SafeForInitializing)
END_CATEGORY_MAP()一 实现数字签名,如果你有钱,你可以申请正式的数字签名,否则可以采用如下做法,虽然下载安装控件时会警告无信任根,但在IE默认安全设置下载和运行完全没有问题,不会有安全警告。1、创建一个自己的证书文件:
makecert /sv "Record.PVK" /n "CN=SinoWave" dream.cer
这里,Record.PVK表示新创建的私人密钥保存文件名
SinoWave是你想显示的公司名
dream.cer是你创建最后的证书文件名
这些根据你自己的要求填写,最后得到Record.PVK和dream.cer两个文件。其中,运行过程中需要输入私人密钥的保护密码(sw),一定要输入一致,不要出错。2、转换cer格式为spc格式(可以省略),得到dream.spc文件。 cert2spc dream.cer dream.spc3、用VS6工具中的 cabarc生成internet分发的CAB包,
cabarc.exe N DataTransfer.cab DataTransfer.ocx4、同时制作分发代码(.htm,其中包含使IE可以自动下载安装包的代码)。
现在得到了2个文件DataTransfer.CAB和DataTransfer.htm。
.htm中包含类似如下的代码:
<OBJECT ID=" DataTransfer " CLASSID="CLSID: CA466D54-0684-49D2-B0C3-DD7E09EA76D3" CODEBASE="http://192.9.200.8/DataTransfer.CAB#version=1,0,0,0"></OBJECT>
5、给CAB文件签名
运行signcode,signcode运行后会出现数字签名向导,首先选DataTransfer.CAB,下一步后会出现签名选项,一种是典型,一种是自定义。选择自定义,这样才能从文件选择证书,选择前面制作的dream.spc,再下一步是选择私钥文件,选择Record.PVK,输入私人密钥的保护密码,选择散列算法,一般用md5就可以了,下一步是选择其他证书,直接下一步,填写一下这个控件的声明,用户用ie浏览的时候,会弹出证书说明,再下一步是加盖时间戳,例如http://timestamp.sheca.com/timestamp,加盖时间戳要联在网上,不过不盖也没什么影响
6、用chktrust检查是否正确
chktrust -v DataTransfer.CAB7、将签名后的DataTransfer.CAB和DataTransfer.htm复制到IIS的某个目录下。并在IE中打开DataTransfer.htm文件进行测试。三 如果你用到附加文件,如使用midas,将附加文件和*.inf文件一起打包,对cab签名。htm文件中codebase指向cab。
注意一定要将*.inf文件一起打包,否则无法注册