我要从一个目录拷贝一个ocx文件到程序目录,拷贝之前我要判断程序目录是否有这个ocx文件和这个ocx是否在使用。出现一个问题:我这个ocx明明没有使用,我用IsFileInUse判断的出的结果确在使用。用CopyFile也没办法覆盖原文件
if LowerCase(ExtractFileExt(RealFileName))='.ocx' then begin
if FileExists(RealFileName) then begin
OCXHand:=LoadLibrary(PChar(RealFileName));
if not IsFileInUse(RealFileName) then
RegFunc:=GetProcAddress(OCXHand,'DllUnregisterServer');
end;
end;
if CopyFile(PChar(TempFileName),PChar(RealFileName),False) then begin
if LowerCase(ExtractFileExt(RealFileName))='.ocx' then begin
try
OCXHand:=LoadLibrary(PChar(RealFileName));
RegFunc:=GetProcAddress(OCXHand,'DllRegisterServer');
finally
FreeLibrary(OCXHand);
end;
end;
DeleteFile(PChar(TempFileName));
end;
if LowerCase(ExtractFileExt(RealFileName))='.ocx' then begin
if FileExists(RealFileName) then begin
OCXHand:=LoadLibrary(PChar(RealFileName));
if not IsFileInUse(RealFileName) then
RegFunc:=GetProcAddress(OCXHand,'DllUnregisterServer');
end;
end;
if CopyFile(PChar(TempFileName),PChar(RealFileName),False) then begin
if LowerCase(ExtractFileExt(RealFileName))='.ocx' then begin
try
OCXHand:=LoadLibrary(PChar(RealFileName));
RegFunc:=GetProcAddress(OCXHand,'DllRegisterServer');
finally
FreeLibrary(OCXHand);
end;
end;
DeleteFile(PChar(TempFileName));
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货