windows - DirectX 10 Screen Capture til Battlefield 3

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har problemer med at få et skærmbillede, når jeg spiller Battlefield3. Jeg ved, at jeg skal fange usig DirectX, så jeg har lavet nogle søgninger og fundet dette:


    Imports System.IO
    Imports Microsoft.DirectX.Direct3D
    Imports Microsoft.DirectX

    Public Class form1
       Public Shared Function CaptureScreenshot(ByVal Device As Direct3D.Device, ByVal Filename As String, ByVal ImageFormat As Direct3D.ImageFileFormat) As Boolean
    Dim B As Direct3D.Surface
    Try
        B = Device.GetBackBuffer(0, 0, DirectX.Direct3D.BackBufferType.Mono)
        Direct3D.SurfaceLoader.Save(Filename, ImageFormat, B)
        B.Dispose()
    Catch ex As Exception
        Return False
    End Try
    Return True
End Function
Public Shared Function CaptureScreenshot(ByVal Device As Direct3D.Device, ByVal Filename As String) As Boolean
    Return CaptureScreenshot(Device, Filename, Direct3D.ImageFileFormat.Bmp)
End Function
Private Sub Main\_Load(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.Load
    CaptureScreenshot(Device, "capture.jpg", Direct3D.ImageFileFormat.Bmp)
End Sub

End Class


men det virker ikke. Det siger :
Fejl 2 'Enhed' er en type og kan ikke bruges som udtryk.
Fejl 1 'DirectX' er ikke angivet. Det kan være utilgængeligt på grund af dets beskyttelsesniveau.


Jeg ved, at spillet bruger DirectX 11/DirectX 10.
Jeg er medlem af en klan i BF3, og vi vil have programmet til at tage skærmbilleder på et tidsinterval, timerne er ikke et problem, jeg kan gøre det, men jeg kan ikke klare at løse de 2 fejl. Tak på forhånd og Jeg sætter pris på den tid, du bruger for at se denne tråd. Undskyld for min engelsk.

Bedste reference