0

我正在寻找一种功能来从 VB.NET Windows 窗体中的嵌入式 Windows Media Player 控件中截取屏幕截图。我目前正在使用以下功能;它工作正常,但问题是每个屏幕xy都不同,所以如果我可以在AxWindowsMediaPlayer控件本身中使用一个函数会更好,比如.Capture()或类似的方法。

Private Function TakeImage(ByVal X As Integer, ByVal Y As Integer, ByVal Width As Integer, ByVal Height As Integer) As Bitmap
    Dim Img As New Bitmap(Width, Height)
    Dim g As Graphics = Graphics.FromImage(Img)
    g.CopyFromScreen(X, Y, 0, 0, Img.Size)
    g.Dispose()
    Return Img
End Function

Dim bmp As Bitmap = TakeImage(x, y - 20, AxWindowsMediaPlayer1.Width, AxWindowsMediaPlayer1.Height)
bmp.Save("E:\pics\" & i.ToString & ".jpg", Drawing.Imaging.ImageFormat.Jpeg)
4

1 回答 1

1

您可以尝试Ctl.PointToScreen()CopyFromScreen.

由于表格可以移动,我AxWMP.PointToScreen每次都会进入程序。将它们传递给CopyFromScreen并查看是否有效。我不确定它是否期望 X,Y 相对于应用程序、表单或除了屏幕之外的其他东西,确实意味着屏幕。

于 2013-09-22T21:48:54.790 回答