我在可执行文件同目录下复制有四个文件:msvcrt20.dll,MFCANS32.DLL,OC30.DLL和VCF132.OCX,
下面代码在本机正确执行,为什么在别的机子还是有问题?procedure TForm1.FormCreate(Sender: TObject);
var
RegisterFileName:PChar;
begin
RegisterFileName := PChar(ExtractFileDir(Application.ExeName)
+ '\VCF132.OCX');
if FileExists(RegisterFileName) = true then
begin
CopyFile(RegisterFileName,'C:\VCF132.OCX',true);
winexec(pchar('regsvr32.exe /s ' + 'C:\VCF132.OCX'), sw_show);
end;
end;
//
由于winexec的参数以空格作为识别的手段,为了避免在C:\Documents and Settings\Administrator\桌面\VCF132.OCX 这样的文件路径有空格出错,采用先复制到c:\VCF132.OCX',然后注册c:\VCF132.OCX,不知道有什么别的好办法?谢谢大家帮忙!
下面代码在本机正确执行,为什么在别的机子还是有问题?procedure TForm1.FormCreate(Sender: TObject);
var
RegisterFileName:PChar;
begin
RegisterFileName := PChar(ExtractFileDir(Application.ExeName)
+ '\VCF132.OCX');
if FileExists(RegisterFileName) = true then
begin
CopyFile(RegisterFileName,'C:\VCF132.OCX',true);
winexec(pchar('regsvr32.exe /s ' + 'C:\VCF132.OCX'), sw_show);
end;
end;
//
由于winexec的参数以空格作为识别的手段,为了避免在C:\Documents and Settings\Administrator\桌面\VCF132.OCX 这样的文件路径有空格出错,采用先复制到c:\VCF132.OCX',然后注册c:\VCF132.OCX,不知道有什么别的好办法?谢谢大家帮忙!
解决方案 »
- 急急急 delphi的asm怎么对串口操作没有反映?delphi高手请进.
- 开心+郁闷 散分
- ReplaceDialog的问题?
- 遇上一个问题,请DX们帮忙
- 如何在dbgrid中显示用原生ADO的Recordset查的记录集????
- Delphi能不能象打开本地数据库一样打开Excel啊?
- 不为赚取分数,只为讨论和学习而到csdn的朋友,请进来看一下,关于结构化存储文件编程遇到的问题。
- Delphi中怎样取一个字符串中的一个字符。
- 《Delphi2程序设计大全》那里可以买到?杭州已经绝版了。我找不到!那位同志可以告诉我?
- 请帮忙。 ^o^
- 使用包技术架构我们的应用程序,使用包的技术难点,欢迎大家讨论。
- 有一delphi类型库开发构件的问题,请大家帮忙!
为了避免类似:winexec(pchar('regsvr32.exe /s ' + 'C:\Documents and Settings\Administrator\桌面\VCF132.OCX'), sw_show); 出错 ,看我最后的说明。
sorry,能否把bat的内容写一下?另如何在安装过程中注册ocx,以Delphi 5.0 Shell为例,方便讲解的话。
上面的问题,我会另外单独给你分的。-----
对于我我上述代码在其他机子上运行出现了问题,能否解释一下?谢谢。
内容:
regsvr32 盘符:\文件目录\VCF132.ocx
顺便告诉你取可执行文件所在目录的方法:extractfilepath(application.exename).
如果你的ocx是与你的可执行文件同在一个目录,上面一行代码即为:
'regsvr32(后面带一个空格) '+extractfilepath(application.exename)+'VCF132.ocx';
将上面一行内容写入bat文件中即可。
代码详如下:
var
f: textfile;
filename: string;
begin
filename := extractfilepath(application.exename)+'a.bat';
assignfile(f,filename);
try
if not fileexists(filename) then
rewrite(f)
else
reset(f);
writeln(f,'regsvr32 '+extractfilepath(application.exename)+'VCF132.ocx');
finally
closefile(f);
end;
winexec(filename,sw_shownormal);
end;
另:C:\Program Files\Borland\Delphi7\Ocx\Vci\Form1\VCF1.HLP也是这么说明的,能帮我解决这个问题吗?谢谢。