积极答复者
自定义Shell,OCX文件注册问题?

问题
-
我有一个应用程序做成自定义Shell,里面有一个ocxLine.ocx文件需要注册,用以下第二种方法试了很多次启动后都提示“没有注册类别”,注册不成功。所有文件我都是在MCD的File里放到%11%的(也就是system32下)。
我在Registry Data里添加注册信息,Value name是installocx.bat(内容是Regsvr32 ocxLine.ocx),Key name是在RunOnce,Value是1。不知道哪里出错了,FBA时好像根本没有执行installocx.bat,启动后都提示“没有注册类别”,Value name改为C:\WINDOWS\system32\installocx.bat也一样。
以下第一种方法说的不是很明确不知道是怎么做,在“属性中->Advanced设置该文件的注册信息”要怎么改OCX文件的属性?是修改SrcName不是修改SrcPath?
1. 在你做好的组件中先加入你需要的dll文件,在组件的File结点下Add->File,添加需要的dll文件。然后在该文件的属性中->Advanced设置该文件的注册信息。
2. 在你做好的组件中做一个自注册的批处理文件,例如命名为Regdll.bat,文件内容格式如下:
regsvr32 msvbvm50.dll /s
regsvr32 msvbvm60.dll /s
regsvr32 ColorLine.ocx /s
regsvr32 COMCT232.OCX /s
regsvr32 COMCT332.OCX /s
regsvr32 COMCTL32.OCX /s
regsvr32 COMDLG32.OCX /s
regsvr32 dao350.dll /s
然后把该文件加入到你的组件中,在组件的File结点下Add->File,添加Regdll.bat文件,然后在Registry Data中将该文件添加到RunOnce注测表项中,这样在FBA时就会执行bat文件中的注册命令,而且只在FBA时执行一次。
答案
全部回复
-
谢谢
其实我先前也已经有测试过了,在BAT里写了如下代码:
copy *.* c:\windows\system32
regsvr32 ocxline.ocx
在FBA和启动XPE系统后,再去看c:\windows\system32下没有复制文件进去。
现在用你给的语言写成
dir >> c:\falg.txt
regsvr32 ocxline.ocx
C盘也没有生成falg.txt(语言是没有写错的,在开发机XP系统上有运行过BAT文件)。
其他我一直怀疑是Registry Data窗口中Value name没有加路径,或是Registry Data窗口中其他地方没有正确,又或者是缺少哪个组件。
我还在测试,论坛里不能上传图片也不太说的清楚。 -
-