我正在开发一个程序,该程序将允许用户截取全屏游戏的屏幕截图,例如使命召唤、战地 3 等。
但是,我的代码有两个问题。
首先,我必须按两次快捷方式,而不是像其他快捷方式那样按一次。这只发生在下面的代码实际上在处理子中时。如果我在按下快捷方式时只显示一个消息框,那么它每次都有效。
其次,每当我截取屏幕截图时,它要么完全变黑,要么截取我的桌面,即使前台正在运行游戏。
我环顾四周,似乎 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