Capturar erro e salvar em JPEG como...?
18/05/2008
0
Eu gostaria de que essa função seja ativada assim que acontecer um erro no sistema, e salva-se como JPEG no diretório do sistema e se possível com dada e hora...
Como resolver....?
procedure TForm1.Button1Click(Sender: TObject);
begin
keybd_event(VK_PRINT, 0, 0, 0);
keybd_event(VK_PRINT, 0, KEYEVENT_KEYUP, 0);
end;
Simular Print Screen 2
keybd_event(vk_snapshot,0, 0, 0); {Tela Toda}
keybd_event(vk_snapshot,1, 0, 0); {Janela Ativa}
Max2006
Posts
18/05/2008
Max2006
No Datamodule eu fiz assim...
function T_dmIntercambio.CapturaTelaJpg: TJpegImage;
var
dc : hdc;
cv : TCanvas;
aux : TBitmap;
begin
Result := TJPEGImage.Create;
aux := TBitmap.Create;
aux.Height := Screen.Height;
aux.Width := Screen.Width;
dc := GetDC(0);
cv := TCanvas.Create;
cv.Handle := dc;
//--Define o tamanho da imagem
aux.Canvas.CopyRect(Rect(0,0,Screen.Width,Screen.Height),cv,
Rect(0,0,Screen.Width,Screen.Height));
cv.Free;
ReleaseDC(0,dc);
//-- Compacta o BMP para JPEG
Result.Assign(aux);
Result.Compress;
end;
E no componente Time eu achei isso....
S := \´F\´+FormatDateTime(\´yymmdd.hhnn\´,now)+\´.jpg\´;
CapturaTelaJpg.SaveToFile(\´C:\\hookteclas\\fotoshook\\\´+S);
end;
Alterei assim....
Na propriedade post erro da query eu coloquei assim...
S := ´F´+FormatDateTime(´yymmdd.hhnn´,now)+´.jpg´;
_dmIntercambio.CapturaTelaJpg.SaveToFile(´D:\OSCM\ERROS\´+S);
O sistema rodou...
Mas está certo...?
Será que vai ficar granvando direto ou so se o erro for executado novamente?
Tenho que colocar em todos os eventos de todas as querys do sistema?
Há alguma forma mais prática?
19/05/2008
Webjoel
De início faça acontecer o erro e verifique! Mas de antemão pra isso funcionar você precisa colocar a função/procedure no ´main´ do seu projeto, na tela principal, se a sua não funcionar, use essa, é a que eu uso!
//procedure para salvar tela de erro procedure TForm1.FotoErro(Sender: TObject; E: Exception); var bmp : TBitmap; jpeg : TJPEGImage; dia,mes,ano,hora,min,seg, mseg : word; begin bmp := TBitmap.Create; Clipboard.Clear; keybd_event(vk_snapshot,0, 0, 0); Application.ProcessMessages; bmp.LoadFromClipboardFormat(CF_BITMAP,clipboard.GetAsHandle(CF_BITMAP),0); jpeg := TJPEGImage.Create; jpeg.Assign(bmp); DecodeDate(now,ano,mes,dia); DecodeTime(now,hora,min,seg,mseg); jpeg.SaveToFile(ExtractFilePath(Application.ExeName) + inttostr(dia) + ´.´ + inttostr(mes) + ´.´ + inttostr(ano) + ´.´ + inttostr(hora) + ´.´ + inttostr(min) + ´.´ + inttostr(seg) + E.Message + ´.jpg´); jpeg.Free; bmp.Free; MessageDlg(E.Message + #1313 +´Contate o Suporte Técnico!´,mtError, [mbOK], 0); end; >> modo de usar //declare nos Uses: ClipBrd, Jpeg; //Colocar no OnCreate do Form principal: Application.OnException := FotoErro;
19/05/2008
Max2006
19/05/2008
Webjoel
Boas Compilações!
Clique aqui para fazer login e interagir na Comunidade :)