Fórum ShellApi - URGENTE #180743

08/09/2003

0

Em relação a linha de código abaixo tenho que acrescentar o ShellApi na cláusula USES. O que acontece é no WINDOWS 2000 funciona normal.. No WINDOWS 98 aparece uma mensagem de erro do tipo violação de acesso no Shell. Isto não seria incompatibilidade do Shell ?????



var
Dados: TSHFileOpStruct;
begin

{ Faz cópia de arquivo de uma pasta para outra pasta
ArqFigura - Parâmetro que possue o caminho e arquivo selecionado
sPathFile - Parãmetro que possue o caminho para ser copiado
}

FillChar(Dados,SizeOf(Dados), 1);
with Dados do
begin
wFunc := FO_COPY;
pFrom := PChar(sArqFigura);
pTo := PChar(sPathFile);
fFlags:= FOF_ALLOWUNDO;
end;
SHFileOperation(Dados);


end;


Roger_prog

Roger_prog

Responder

Posts

09/09/2003

Eduardo_chiletto

:D

Faz o seguinte: Essa rotina é realmente terrivelmente perigosa. Outro dia, precisei fazer um programa de backup e me ferrei com ela. Daí, resolvi fazer com TMemoryStream(se alguém tiver uma ideia melhor, favor, me avise)

function Copiar(Destino, Origem : String);
var
Arq : TMemoryStream;
Nome_do_Arquivo : String;
begin
Nome_do_Arquivo := ExtractFileName(Destino);

// obs.: não me lembro se tem que criar a variável. Ex. Arq := TMemoryStream.create... Queira testar para saber.


Arq.LoadFromFile(Destino);
Arq.SaveToFile(Origem + ´\´ + Nome_do_Arquivo);


pronto. Isso vai resolver seu problema. Roda em todo tipo de sistema operacional.
end;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar