Delphi 2006 を使用してコンポーネントに取り組んでいます。コンポーネントはシステム情報を取得し、ファイルに書き込みます。コンポーネントにグローバル例外ハンドラーを組み込む必要があるため、例外が発生するとキャッチされ、カスタム メッセージがユーザーに表示されます。
procedure Tmy.GlobalExceptionHandlerThis(Sender : TObject; E : Exception );
begin
//catch the exception and show the message
TakeScreenShotAndSaveInapplicationFolder;
MessageDlg('Exception has Occured , Detail '+E.Message,mtError,[mbOK],0);
end;
これは正常に機能しますが、要件に従って、エラースクリーンショットをキャプチャする必要があります (これは、例外がポップアップしたフォームを視覚的に見つけるためです)
だから、 delphigeist.comからスクリーンショットコードを取得して、これを行いました:
procedure TakeScreenShotAndSaveInapplicationFolder;
var
thisBitmap: TBitmap;
sDate : string;
begin
DateSeparator :='_';
TimeSeparator:='_';
sDate :=DateTimeToStr(now);
thisBitmap := TBitmap.Create;
ScreenshotArea(thisBitmap, Screen.DesktopRect, True);
thisBitmap.SaveToFile(ExtractFilePath(Application.ExeName)+sDate+'.jpg');
FreeAndNil(thisBitmap);
end;
問題:
例外が発生したとき、メッセージのスクリーンショットも撮りたいのですが、私のコードではこれが起こります
このようなスクリーンショットを取得する方法を誰か教えてもらえますか? それはフォームに沿ってメッセージを取得します
MessageDlg('Exception has Occured, Detail ' + E.Message,mtError,[mbOK],0);
モーダルなので、メッセージの後、スクリーンショットを撮ることができません。また、できない前に、例外メッセージが表示されたときにいつスクリーンショットを撮ることができますか?
procedure Tmy.GlobalExceptionHandlerThis(Sender : TObject; E : Exception );
begin
//catch the exception and show the message
TakeScreenShotAndSaveInapplicationFolder;
MessageDlg('Exception has Occured , Detail '+E.Message,mtError,[mbOK],0);
TakeScreenShotAndSaveInapplicationFolder;
end;