制作并用网页调用activex的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 helloymz
  • 开始时间 开始时间
H

helloymz

Unregistered / Unconfirmed
GUEST, unregistred user!
我自己用delphi写了一个简单的activex,生成ocx.
然后我用regsvr32 ***.ocx进行注册
然后我在一个网页中进行调用

<object id=&quot;myid&quot
classid=&quot;clsid:********&quot;>
</object>

这样在网页中不能使用我的控件....

但是,如果我在 delphi里面编activex的时候用register type library这个命令注册以后,就可以在网页中正常使用了...
请问是为什么?我在调用regsvr32注册以后,还有进行什么操作么?网页代码中的classid肯定没错.因为我通过register type library就可以用.
 
我自己用delphi写了一个简单的activex,生成ocx.
然后我用regsvr32 ***.ocx进行注册
然后我在一个网页中进行调用

<object id=&quot;myid&quot
classid=&quot;clsid:********&quot;>
</object>

这样在网页中不能使用我的控件....

但是,如果我在 delphi里面编activex的时候用register type library这个命令注册以后,就可以在网页中正常使用了...
请问是为什么?我在调用regsvr32注册以后,还有进行什么操作么?网页代码中的classid肯定没错.因为我通过register type library就可以用.
 
楼主:
应写成如下这样,你试试
<object
classid=&quot;clsid:446FEAF3-FBB9-46B4-B9CC-F0A6A9792D1A&quot;
codebase=&quot;http://Demo/Demo.ocx#version=1,0,0,1&quot;
...
/object>
 
你把你的原代码贴出来,让我看看问题出在那里了?
 
codebase只是用来说明要去哪里下载这个控件的吧?我现在是通过安装程序安装ocx,所以我想可能不需要codebase.
 
我是用tpanel做基础类,做一个activex的.其他的地方都是默认的.只是加了一个方法:

procedure THouse8setup.StartTalk(const Uname: WideString);
var
a:string;
h:Thandle;
ds: TCopyDataStruct;
begin
a:=uname;
h:=findWindow('TfrmMain',nil);
if h<>0 then
begin
ds.cbData := Length ((a)) + 1;
GetMem (ds.lpData, ds.cbData )

StrCopy (ds.lpData, PChar(a));
SendMessage(h,WM_COPYDATA,0,Cardinal(@ds)) ;
FreeMem (ds.lpData);
end
else
begin
showmessage('您还未该软件,请启动。');
end;
end;
其他的都没有改动原来的.
 
帮帮我..
 
提示一下也可以...
 
应该需要数字签名的,你签名了吗?没有的话建议你下载一个免费的数字签名软件,对你的Activex先迁一下名,另外网页上的版本号和你程序的版本号之间的关系也要注意!
 
helloymz
问题解决了没有?
我看你的代码没什么问题,但不知道其它地方搞错没有。比如在建立时的设置等。。。。
 
到这个地址
http://www.fm201.com
的 “下载中心” 看看,希望有帮助
 
后退
顶部