-1

プログラミングを通じてスクリーンショットを撮る方法を知っていますが、メッセージボックスに表示される例外のスクリーンショットを実行時に表示したいですか?できますか?私に提案してください...事前に感謝します

    Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);    
Graphics graphics = Graphics.FromImage(bitmap as Image);    
graphics.CopyFromScreen(0, 0, 0, 0, bitmap.Size);    
bitmap.Save("c:\\screenshot.jpeg", ImageFormat.Jpeg); 
4

1 に答える 1

0

を使用して作成されたメッセージ ボックスのスクリーンショットが必要な場合はMessageBox.Show()、少し注意が必要です。以下にいくつかのオプションを示します。

  1. スクリーンショットをスキップし、代わりにex.ToString()(where exis your Exceptionobject) を使用してエラーの内容をキャプチャします。
  2. カスタム メッセージ ボックス フォームを作成して、スクリーンショットのサイズと位置を取得できるようにします。
  3. メッセージ ボックスのタイトルを使用してそのハンドルを見つけ、その位置とサイズを取得できるかどうかを確認します。率直に言って、これがうまくいくかどうかはわかりません。

また、MessageBox.Show()モーダルであることにも注意してください。この行の後にスクリーンショット コードを配置すると、コードが実行される前にメッセージ ボックスが表示されなくなります。スレッドを使用してこれを回避できますが、それはおそらく必要以上の作業であり、タイミングの問題により信頼できない場合があります。

個人的には、エラーの内容だけを使用し、スクリーンショットをスキップすることをお勧めします。これははるかに便利で、ユーザーに表示したくない情報をメッセージ ボックスに含めることができます。

于 2012-11-28T13:13:54.127 に答える