C# 捕获最小化远程桌面的屏幕截图

C# 捕获最小化远程桌面的屏幕截图,c#,screenshot,remote-desktop,C#,Screenshot,Remote Desktop,我有下面的C#代码,我正在使用它捕获远程桌面(RDP)会话中的屏幕截图。当会话处于活动状态时,它可以正常工作,但如果最小化会话,它将失败并出现无效句柄异常 有什么办法可以让它工作,或者当会话最小化时,屏幕基本上“消失”了吗 string filename = @"C:\Snap.png"; Size bitmapSize = new Size( Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height ); usi

我有下面的C#代码,我正在使用它捕获远程桌面(RDP)会话中的屏幕截图。当会话处于活动状态时,它可以正常工作,但如果最小化会话,它将失败并出现无效句柄异常

有什么办法可以让它工作,或者当会话最小化时,屏幕基本上“消失”了吗

string filename = @"C:\Snap.png";
Size bitmapSize = new Size( Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height );
using (Bitmap bitmap = new Bitmap(bitmapSize.Width, bitmapSize.Height, PixelFormat.Format24bppRgb))
using (Graphics graphics = Graphics.FromImage(bitmap))
{
    graphics.CopyFromScreen( // Exception thrown here
        new Point(0, 0), 
        new Point(0, 0), 
        bitmapSize);
    bitmap.Save(filename, ImageFormat.Png);
}

您必须临时恢复窗口,捕获并再次最小化它

这个程序是在远程机器上运行还是在本地机器上运行?它在远程机器上运行。如果我在客户端截图的话,这就行了。我更喜欢在远程会话中工作的东西,但是如果没有其他问题,我会选择这个。