我工作的一個程序,這將使用戶可以利用全屏幕遊戲,如使命召喚,戰地3等VB.net以在遊戲中的截圖
不過,我截圖我的代碼有兩個問題。
首先,我不得不按兩次快捷鍵,而不是像我的其他快捷鍵一樣。僅當下面的代碼實際處於處理子部分時纔會發生這種情況。如果我按下快捷鍵時只顯示一個消息框,則每次都有效。第二,每當我截取屏幕截圖時,即使遊戲在前臺運行,它也會完全呈現黑色,或拍攝我的桌面。
我環顧四周,看起來printscreen是通過vb.net獲取遊戲截圖的唯一方法。
我的代碼如下。任何幫助表示讚賞。
Private Sub game_Press(ByVal s As Object, ByVal e As Shortcut.HotKeyEventArgs) Handles gamewindow.press
Dim gamewin As RECT
If GetWindowRect(GetForegroundWindow, gamewin) Then
Dim bmp As Bitmap
Dim gfx As Graphics
SendKeys.Send("%{PRTSC}")
Dim getscrn As IDataObject = Clipboard.GetDataObject()
Dim bmpsize As New Size(gamewin._Right - gamewin._Left, gamewin._Bottom - gamewin._Top)
bmp = New Bitmap(CType(getscrn.GetData(GetType(System.Drawing.Bitmap)), Bitmap))
gfx = Graphics.FromImage(bmp)
gfx.CopyFromScreen(gamewin._Left, gamewin._Top, 0, 0, New Size(bmpsize.Width, bmpsize.Height), CopyPixelOperation.SourceCopy)
Dim sr As New System.Threading.Thread(AddressOf uploadimage)
sr.IsBackground = True
sr.SetApartmentState(Threading.ApartmentState.STA)
sr.Start(bmp)
gfx.Dispose()
End If
End Sub
然後你會推薦什麼?我見過的所有東西都表示使用printscreen來處理屏幕截圖。 – Justin
你顯然沒有看到這一切呢 - http://stackoverflow.com/questions/1962142/take-screenshot-of-directx-full-screen-application –