Segue função que fiz para salvar tela qdo der erro no sistema (tem umas
variaveis de uso meu aí no meio,
mas substitua pelos caminho da imagem, etc)
procedure TfAdm001.SalvaImagemErro(pMensagem : String);
//Função que captura tela
function CaptureScreenRect( ARect: TRect ): TBitmap;
var
ScreenDC: HDC;
begin
Result := TBitmap.Create;
with Result, ARect do
begin
Width := Right - Left;
Height := Bottom - Top;
ScreenDC := GetDC( 0 );
try
BitBlt( Canvas.Handle, 0, 0, Width, Height, ScreenDC, Left, Top,
SRCCOPY );
finally
ReleaseDC( 0, ScreenDC );
end;
end;
end;
const
cPastaErros = 'C:\Administrativo\Imagens\Erros\';
Var BitMap : TBitmap;
JPeg: TJPegImage;
zNomeArq : String;
zArqTXT : TStringList;
Begin
try
if not DirectoryExists(cPastaErros) then
ForceDirectories(cPastaErros);
except
exit;
end;
zNomeArq := FormatDateTime('yyyyMMddhhnnsszzz', now);
//Criando o Componente TBitmap
BitMap := TBitmap.Create;
//Capturando a Tela do PC
BitMap := CaptureScreenRect(Bounds(0,0,Screen.Width,Screen.Height));
//Salvando a imagem capturada no PC, note que o arquivo
//serah salvo em c\: com o nome HMG.BMP
// BitMap.SaveToFile(ExtractFilePath('c:\')+'HMG.bmp') ;
//Convertendo o aurquio HMG.BMP em HMG.JPG
try
BitMap.SaveToFile(cPastaErros + zNomeArq + '.bmp') ;
// BitMap.LoadFromFile(cPastaErros + zNomeArq + '.jpg');
JPeg := TJPegImage.Create;
try
JPeg.CompressionQuality := 30; { Aqui coloquei que o arq deve ter uma
Qualidade de 10% }
JPeg.Assign(BitMap);
//Convertendo em JPG
// JPeg.SaveToFile(ChangeFileExt('c:\HMG', '.jpg'));
JPeg.SaveToFile(cPastaErros + zNomeArq + '.jpg');
finally
JPeg.Free;
//******* salva mensagem erro em txt pq no momento que salva jpg ja deu
ok na msg **
try
zArqTXT := TStringList.Create;
zArqTXT.Add(pMensagem);
zArqTXT.SaveToFile(cPastaErros + zNomeArq + '.txt');
finally
zArqTXT.Free;
end;
//*******************************************************************
end;
finally
BitMap.Free;
if FileExists(cPastaErros + zNomeArq + '.bmp') then //exclui o BMP, deixa
só o JPG
DeleteFile(cPastaErros + zNomeArq + '.bmp');
end;
end;
----- Original Message -----
From: pcinfowave
To: [email protected]
Sent: Thursday, March 15, 2007 12:33 PM
Subject: [delphi-br] Gerar arquivo JPEG
Ola, gostaria da ajuda para criar um procedimento q gera uma imagem JPG
de uma tela, tipo o PrintScreen
porem q já salve o arquivo na area de trabalho, para que meu usuario
possa me enviar esta tela por msn por exemplo.
É que os usuarios nao tem muito conhecimento sobre o micro, daí quero
facilitar para eles.
Se alguem puder ajudar, agradeço!
[]´s
paulo
[As partes desta mensagem que não continham texto foram removidas]