ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
486
486
EMPFEHLEN
-
Moin,
ich habe ein Problem mit dem Screenshotcode von http://www.developerfusion.co.uk/show/4630/, der hier schon in einem anderen Thread erwähnt wurde. Ich kann ohne Probleme Screenshots von allen möglichen Fenstern erstellen, nur hapert es beim Screenshot von einem Computerspiel, das im Fenstermodus läuft. Der erste Shot klappt noch, danach bekomme ich aber bei jedem weiteren Versuch immer wieder das gleiche alte Bild. Erst wenn ich im Spiel von Fenster auf Vollbildmodus und zurück schalte, erhalte ich ein neues Bild. Mein Code sieht vereinfacht so aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
[SIZE=2][COLOR=#2b91af]ScreenCapture[/COLOR][/SIZE][SIZE=2] sc = [/SIZE][SIZE=2][COLOR=#0000ff]new[/COLOR][/SIZE][SIZE=2][COLOR=#2b91af]ScreenCapture[/COLOR][/SIZE][SIZE=2]();[/SIZE] [SIZE=2]...[/SIZE] [SIZE=2]#Buttonevent[/SIZE] [SIZE=2][COLOR=#0000ff]while[/COLOR][/SIZE][SIZE=2] ([/SIZE][SIZE=2][COLOR=#0000ff]this[/COLOR][/SIZE][SIZE=2].Handle == [/SIZE][SIZE=2][COLOR=#0000ff]new[/COLOR][/SIZE][SIZE=2][COLOR=#2b91af]IntPtr[/COLOR][/SIZE][SIZE=2](GetForegroundWindow()))[/SIZE] [SIZE=2]{[/SIZE] [SIZE=2][COLOR=#2b91af]Thread[/COLOR][/SIZE][SIZE=2].Sleep(500);[/SIZE] [SIZE=2]} [/SIZE] [SIZE=2][COLOR=#2b91af]IntPtr[/COLOR][/SIZE][SIZE=2] handle = [/SIZE][SIZE=2][COLOR=#0000ff]new[/COLOR][/SIZE][SIZE=2][COLOR=#2b91af]IntPtr[/COLOR][/SIZE][SIZE=2](GetForegroundWindow());[/SIZE] [SIZE=2]Screenshot = sc.CaptureWindow(handle); [/SIZE] [SIZE=2][SIZE=2]bm = [/SIZE][SIZE=2][COLOR=#0000ff]new[/COLOR][/SIZE][SIZE=2][COLOR=#2b91af]Bitmap[/COLOR][/SIZE][SIZE=2](Screenshot);[/SIZE] [SIZE=2]graph = [/SIZE][SIZE=2][COLOR=#2b91af]Graphics[/COLOR][/SIZE][SIZE=2].FromImage(bm); //benötigt, um auf dem Bild zu zeichnen[/SIZE] [SIZE=2]AnalyseBild.Image = bm;[/SIZE] [SIZE=2]AnalyseBild.Size = bm.Size;[/SIZE] [SIZE=2]#Ende Buttonevent[/SIZE] [/SIZE]
Gibt es bei OpenGL Fenstern ein bestimmtes Kommando zum Refresh oder ein ähnliches Vorgehen?
Gruß Maik
-
So, ich habe mittlerweile rausbekommen, dass ich screenshots von direct3D Fenstern anders machen muss, und zwar folgendermaßen:
Mein Problem liegt aber nun darin, dass ich nicht weiß, wie ich vom Handle (IntPtr) des Direct3D Fensters zum device komme. Hat da jemand Rat für mich?PHP-Code:Surface backbuffer = device.GetBackBuffer(0, 0, BackBufferType.Mono);
SurfaceLoader.Save("Screenshot.bmp", ImageFileFormat.Bmp, backbuffer);
backbuffer.Dispose();
Ähnliche Themen
-
Screenshots und Windows 7 mit DirectX
Von Afritus im Forum .NET Grafik und SoundAntworten: 18Letzter Beitrag: 31.03.10, 08:09 -
Screenshots mit windows ce 3.0
Von mamut77 im Forum Microsoft WindowsAntworten: 1Letzter Beitrag: 07.07.09, 17:30 -
Aktualisierte Version der SQL Server 2005 Books
Von Norbert Eder im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 25.04.06, 15:15 -
Laufend aktualisierte GUI-Ausgabe statt Konsole
Von Joghurt im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 12Letzter Beitrag: 23.11.04, 23:23 -
Works 2000-ist aktualisierte DBabfrage möglich?
Von Bananendampfer im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 16.11.04, 14:07





Zitieren
Login




