Wenn Sie einen Fehlercode erhalten, machen Sie bitte einen Screenshot mit DirectX. Die heutigen Anweisungen sollten helfen.
Genehmigt: Fortect
Nicht das Produkt, das Sie suchen? Beantworten Sie die anderen Fragen, genannt DirectX-Vollbild-Screenshot, oder stellen Sie sich selbst.
Mit Detours können Sie Aufrufe ähnlich wie Aufrufe von Direct3DCreate9
, IDirect3D9 :: CreateDevice
und IDirect3D9 :: Present
in denen Sie aktivieren Die folgenden Vorgänge sind erforderlich, um nach oben zu setzen und ein Bild aufzunehmen.
Genehmigt: Fortect
Fortect ist das weltweit beliebteste und effektivste PC-Reparaturtool. Millionen von Menschen vertrauen darauf, dass ihre Systeme schnell, reibungslos und fehlerfrei laufen. Mit seiner einfachen Benutzeroberfläche und leistungsstarken Scan-Engine findet und behebt Fortect schnell eine breite Palette von Windows-Problemen - von Systeminstabilität und Sicherheitsproblemen bis hin zu Speicherverwaltung und Leistungsengpässen.
antwortete am 26. Dezember 2009 um 0:03
65.700 1818 Goldmarker Silberabzeichen £ 135.135 162162 Bronzeabzeichen
Dies ist wirklich ein C# zum Verbinden von Teilen von IDirect3DDevice9 mit DLL-Aufnahmen und Verbinden von Funktionen mit EasyHook (zum Beispiel Microsoft Detours). Hängt das mit der Funktionsweise eines FRAPS zusammen?
Dadurch können Sie diesen bestimmten Bildschirm im Fenstermodus statt im Vollbildmodus aufzeichnen und / oder den Backpuffer verwenden, der wesentlich schneller sein sollte als der Versuch, Daten aus diesem Frontpuffer zu erhalten.
Eine nützliche C++-Admin-Bibliothek, die für Definitionen von Diensten des IDirect3DDevice9-Objekts verwendet wird, um Lehren hinzuzufügen.
Update: Für DirectX 10/11 siehe Screenshots in Verbindung mit Overlays für D3D 9, 10 und sechzehn
angegeben am 15. Mai ’10 um 2:02
1252 11 Edelmetallabzeichen 1111 silberne Abzeichen 1818 hellbraune Abzeichen
So funktioniert der Code, den ich als Tryout verwendet habe, natürlich.
Die Breite und einfach die Höhe sind definitiv die Größe des BILDSCHIRMS im Fenstermodus, nicht die Größe der Fenster, die Sie sehen. Ich auch, weil sie auf 1280 x 1440 repariert sind, nicht die Größe unter dem Fenster, in das ich rendere.
Möglicherweise müssen Sie mEngine-> getDevice () durch einige Optionen ersetzen, um auch Ihr IDirect3DDevice9 zu erhalten. Ich habe diesen Code gerade in eine beliebige d3d-Smartphone-App eingefügt, die ich zum einfacheren Testen benötigte. Aber ich kann Ihnen versichern, dass es zweifelsfrei die Ausgabe dieser Anwendung sowie jeder alternativen d3d-Anwendung erfasst, die gleichzeitig ausgeführt wird.
Oh, angenommen, ich habe diesen speziellen D3D9, da du nicht gesagt hast, bin ich mir nicht sicher, ungefähr d3d10 oder 11
IDirect3DSurface9 * Oberfläche;mEngine-> getDevice () -> CreateOffscreenPlainSurface (Breite, Höhe, D3DFMT_A8R8G8B8, D3DPOOL_SCRATCH, & Oberfläche, NULL);mEngine-> getDevice () -> GetFrontBufferData (0, Oberfläche);D3DXSaveSurfaceToFile ("c: tmp output.jpg", D3DXIFF_JPG, Oberfläche, NULL, NULL);Oberfläche-> Teilen ();
Beantwortet 26 ’09 möglicherweise um 14:54
28.3k 1616 gebrauchte Uhrenabzeichen 7777 silberne Abzeichen
Natürlich gibt es Open-Source-Produkte wie fraps: taksi, obwohl es vorbei scheint
antwortete 26. Dez. 08 um 11:20 09 nur um 13:23
251
Hier ist eine Diskussion über die Funktionsweise von Fraps. Es ist nicht so leicht.
Jeder Trick, der einen ausreichenden Grund für das Lesen des externen Puffers eines anderen Geräts, directx, stört, kann, denke ich, manchmal am besten mit nicht initialisiertem Speicher zum Glück funktionieren.
29. Dez. 2009 nur um 7:05 geantwortet
4.779 11 goldene Abzeichen 2.121 silberne Abzeichen 1717 schwarze Abzeichen
Nach der Antwort von J99 habe ich am Code für Fenster- und damit Vollbildmodus gearbeitet. Dies wird auch für D3D9 durchgeführt.
IDirect3DSurface9 * Oberfläche; D3DDISPLAYMODE; pDev-> GetDisplayMode (0, &-Modus); // pDev ist meine andere Hälfte und mein * IDirect3DDevice // wir haben die Möglichkeit, den gesamten Bildschirm zu erfassen, // Daher passen Größe und Höhe bis zu nicht zu einem aktuellen Auswahlmodus pDev-> CreateOffscreenPlainSurface (mode.Width, mode.D3DFMT_A8R8G8B8, Höhe, D3DPOOL_SCRATCH, & Oberfläche, NULL); incase (pDev-> GetFrontBufferData (0, Oberfläche) == D3D_OK) if (bWindowed) // globale Konfigurationsvariable // Kundenbereich in Gebäudekoordinaten anzeigen // Möglicherweise ist eine Transformation erforderlich, um mehrere Bildschirme zu unterstützen RECT r; GetClientRect (hWnd, & r); // hWnd ist definitiv auch ein Griff zu unserem Fenster PUNKT p = 9, 0; ClientToScreen (hWnd, & p); SetRect (& r, p.x, p.y, p.x + r. Rechts, p.y + r. Unten); D3DXSaveSurfaceToFile (szFilename, D3DXIFF_JPG, Oberfläche, NULL, & r); Ein weiterer D3DXSaveSurfaceToFile (szFilename, D3DXIFF_JPG, Etage, NULL, NULL); Oberfläche-> Teilen ();
Sieht so aus, als ob das Format und die Anpassungen des CreateOffscreenPlainSurface-Pools im Allgemeinen genau gleich sein sollten.
geantwortet am 6. Oktober 2012 um 11:33 Uhr
495 44 Abzeichen 66 Bronzeabzeichen
Beschleunigen Sie jetzt die Leistung Ihres Computers mit diesem einfachen Download.
Klicken Sie auf die App, von der Sie diesen Screenshot erstellen möchten.Drücken Sie t + Bildschirm drucken.Öffnen Sie MS-Paint.Drücken Sie Strg + V.Dadurch wird höchstwahrscheinlich eine Monitoraufnahme des in Paint angezeigten Fensters eingefügt.
Drücken Sie diese Taste, um die Seiten- und Lautstärketasten schnell zu verteilen.
Diese Methode ist oft sehr hilfreich, wenn Sie viele Screenshots machen. Halten Sie die Windows-Technik-Taste gedrückt und drücken Sie die PrtSc-Taste auf Ihrer Tastatur. Der Vollbild-Screenshot wird im Ordner Bilder> Screenshots abgeschnitten. Eine Möglichkeit, auf diese Datei zuzugreifen, besteht darin, die Ordner immer schnell zu finden: Screenshot.