![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CopyFiles отключить контроль ошибок [D7, XP]
belmol © (2009-07-02 11:50:00)есть код
{$I-}
CopyFiles( Handle, [ExtractFilePath(Application.ExeName)+'TempDirectory\update.exe'],ExtractFilePath(Application.ExeName),true,false);
RemoveDir(ExtractFilePath(Application.ExeName)+'TempDirectory');
{$I+}
где
function CopyFiles( Handle : Hwnd; Src : array of string; Dest : string;
Move : Boolean; AutoRename : Boolean ) : Integer;
var
SHFileOpStruct : TSHFileOpStruct;
SrcBuf : TBuffer;
begin
CreateBuffer( Src, SrcBuf );
with SHFileOpStruct do
begin
Wnd := Handle;
wFunc := FO_COPY;
if Move then wFunc := FO_MOVE;
pFrom := Pointer( SrcBuf );
pTo := PChar( Dest );
fFlags := FOF_NOCONFIRMATION and FOF_SIMPLEPROGRESS;
if AutoRename then fFlags := FOF_RENAMEONCOLLISION and FOF_SIMPLEPROGRESS;
fAnyOperationsAborted := False;
hNameMappings := nil;
lpszProgressTitle := nil;
end;
Result := SHFileOperation( SHFileOpStruct );
SrcBuf := nil;
end;
при отсутствии фаила с директории он начинает ругаться и говорить что ошибка копирования, как ее убрать, чтоб если ошибка , то наплевать, продолжить выполнение.. т.е. не показывать никаких сообщений об ошибке.
вроде как вычитал что вот это
{$I-} {$I+}
либо {$IOChecks off} {$IOChecks on}
но что то ни то ни то не отключает контроль ошибок.
belmol (2009-07-02 12:12:00) [21]пробовал.. не идет...
Palladin (2009-07-02 12:10:00) [22]эти директивы влияют только на стандартые методы ввода/вывода
заверни в try/except