Снимок экрана DirectX 10 для Battlefield 3 - PullRequest
1 голос
/ 28 марта 2012

У меня проблемы с получением снимка экрана, когда я играю в Battlefield3.Я знаю, что я должен захватить usig DirectX, поэтому я сделал поиск и нашел это:

    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

, но это не работает.Он говорит: Ошибка 2 «Устройство» является типом и не может использоваться в качестве выражения.Ошибка 1 «DirectX» не объявлена.Он может быть недоступен из-за уровня защиты.

Я знаю, что игра использует DirectX 11 / DirectX 10. Я являюсь членом клана в BF3, и мы хотим, чтобы программа делала снимки экрана через определенный промежуток времени.таймеры не проблема, я могу это сделать, но я не могу решить 2 ошибки.Спасибо заранее, и я ценю время, которое вы тратите на просмотр этой ветки.Извините за мой английский.

...