SendKeys и фотографирование экрана - PullRequest
0 голосов
/ 07 июля 2011

Я сделал этот код VB.NET, чтобы сфотографировать весь мой экран, но вместо этого он делает только фотографию сфокусированной области. Почему это?

  Public Function SaveScreen(ByVal theFile As String) As Boolean

            Try
                SendKeys.Send("{PRTSC}")
                Application.DoEvents()

                Dim data As IDataObject = Clipboard.GetDataObject()

                If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then
                    Dim bmp As Bitmap = CType(data.GetData(GetType(System.Drawing.Bitmap)), Bitmap)
                    bmp.Save(theFile, Imaging.ImageFormat.Png)
                End If
                Clipboard.SetDataObject(0)      'save memory by removing the image from the clipboard
                Return True
            Catch ex As Exception
                Return False
            End Try

        End Function

1 Ответ

0 голосов
/ 07 июля 2011

вместо SendKeys, вы можете попробовать API-функцию keybd_event

Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)

Private Const kbdDown = 0
Private Const kbdUp = 2



Private Sub SendKey(ByVal Key As Byte)
    Call keybd_event(Key, 0, kbdDown, 0)
    Call keybd_event(Key, 0, kbdUp, 0)

End Sub

Код ключа Print-Key - 42 (0x2A)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...