So erhalten Sie einen Screenshot mit dem aufrufenden Fenster (unter XP)

Ich habe Code, der einen Screenshot macht ...

<code>Size ssSize;
int ssX, ssY, ssWidth, ssHeight;
Bitmap thisScreenshot;
Graphics gfxScreenshot;

public Image Screenshot()
{
ssX = Screen.PrimaryScreen.Bounds.X;
ssY = Screen.PrimaryScreen.Bounds.Y;
ssWidth = Screen.PrimaryScreen.Bounds.Width;
ssHeight = Screen.PrimaryScreen.Bounds.Height;
ssSize = Screen.PrimaryScreen.Bounds.Size;
thisScreenshot = new Bitmap(ssWidth,ssHeight);
gfxScreenshot = Graphics.FromImage(thisScreenshot);
return((Image)gfxScreenshot.CopyFromScreen(ssX, ssY, 0, 0, ssSize));
}
</code>

In W7 enthält das resultierende Bild die Pixel des aufrufenden Fensters; aber auf XP tut es nicht. Ich möchte, dass das Bild immer die Pixel des aufrufenden Prozesses / Fensters enthält. Irgendeine Ahnung, wie ich das erzwingen kann?

UPDATE1: Ich habe mehr damit experimentiert und bin daher verwirrter ... Ich habe den obigen Code verwendet und eine völlig separate Anwendung erstellt, sodass keine Beziehung zwischen dieser und der Anwendung besteht, von der ich sie ursprünglich gestartet habe . Seltsamerweise sehe ich IMMER NOCH nicht das Fenster dieser Anwendung im Screenshot. Jetzt habe ich keine Beziehung zwischen dem Vorgang, bei dem der Screenshot erstellt wird, und dem Fenster, das in den Screenshot aufgenommen werden soll. Dieses Fenster ist jedoch noch nicht enthalten. Ich habe die PRNT-SCRN-Taste ausprobiert und das schließt das Fenster ein. Beachten Sie, dass dies nur unter XP ein Problem ist.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage