0

次のコードを使用して、指定されたアプリ領域のみをキャプチャしています。

    'find running instance of calculator
    Dim p As Process = Process.GetProcessesByName("calc").FirstOrDefault
    If p IsNot Nothing Then
        'bring window to front
        AppActivate(p.Id)
        'get location + size of window
        Dim r As New RECT
        GetWindowRect(p.MainWindowHandle, r)
        'create new bitmap + copy calc window
        Dim img As New Bitmap(r.right - r.left, r.bottom - r.top)
        Dim gr As Graphics = Graphics.FromImage(img)
        gr.CopyFromScreen(New Point(r.left, r.top), Point.Empty, img.Size)
        'save image + launch in default viewer
        img.Save("test.png", Drawing.Imaging.ImageFormat.Png)
        Process.Start("test.png")
    End If

正しいアプリをキャプチャすることは問題ありませんが、アプリの全画面ではなく、そのアプリ内の#2ボタンのみをキャプチャしようとしています。

アプリ内でボタンが配置されることはわかっています: 左から 97 ピクセル 上から 189 ピクセル

2 番目のボタン自体のサイズは、幅 36 ピクセル、高さ 29 ピクセルです。

しかし、それらのポイントをどこに置いても、上記の現在のコードでそれを機能させることができませんでした。

4

1 に答える 1