У меня проблемы с получением снимка экрана, когда я играю в 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 ошибки.Спасибо заранее, и я ценю время, которое вы тратите на просмотр этой ветки.Извините за мой английский.