如何通过CopyFromScreen发送多个CopyPixelOperation?

时间:2010-01-07 22:06:35

标签: c#

我使用托管的Graphics.CopyFromScreen方法在屏幕上截取某个区域的Bitmap屏幕截图。

一切正在使用CopyPixelOperation.SourceCopy枚举作为CopyFromScreen方法的标志...但不幸的是我需要捕获我正在尝试捕获的区域中的分层/透明窗口...并且仅使用SourceCopy枚举这些不会在生成的图像中被拾取。这可以使用CopyPixelOperation.CaptureBlt来解决...但我找不到这样做的方法:

Graphics.CopyFromScreen(left, top, 0, 0, size, CopyPixelOperation.SourceCopy | CopyPixelOperation.CaptureBlt); // note the binary OR operator

...因为这会导致Resharper出现“按位或不可能出现类型枚举”样式错误 - 我在此基础上研究了错误,发现对枚举值的数字表示形式的枚举上的按位操作发生了最后得到另一个可用的枚举值(与其中两个相反)。

有没有办法将两个枚举传递给此函数或类似函数?如果可能的话,我倾向于保持管理。


MSDN文档

1 个答案:

答案 0 :(得分:0)

根据MSDN:

  

copyPixelOperation
  键入:System.Drawing .. ::。CopyPixelOperation
  一个 CopyPixelOperation值。

你无法组合这些标志,你可能还是想单独使用CopyPixelOperation.CaptureBlt