-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 回答