キャプチャした画像にカーソール画像合成


VB Tips And Sample(HOME)(VB.NET Sample インデックス)




たとえばこれを1秒間0.5秒間単位等で行い、取得した画像を使うときにマウスカーソールの画像もあれば・・・・という例です。
'画面をキャプチャする↓

        '2005だとGraphics.CopyFromScreenが使える
        '2002 2003だと SendKeys.SendWait("^{PRTSC}") でクリップボードに取得できる
        '@IT スクリーンやウィンドウをキャプチャするには?[2.0のみ、C#、VB] や
         DOBON.NET 画面をキャプチャする に詳しく紹介されています。
        '画面範囲を指定して切り取ることも可能と思われます。

'画面をキャプチャする↑

'画像にマウスカーソルを合成する

        'キャプチャした画像をPictureBox1に表示した場合グラフィックを取得
        Dim g As Graphics = Graphics.FromImage(PictureBox1.Image)

        'カーソルポジション取得
        Dim Pt As Point
        Pt = Windows.Forms.Cursor.Position
        Dim Ang As System.Drawing.Rectangle
        Ang.X = Pt.X
        Ang.Y = Pt.Y

        'これである程度はマウスカーソールの現状を取得できるが、完璧ではない
    'グラフィックスへ上書き合成する。
        Cursor.Current.Draw(g, Ang)
        'Cursors.WaitCursor.Draw(g, Ang)’カーソルの状態を決め打ちする場合

        '連番で保存する
        PictureBox1.Image.Save (Application.StartupPath & "\" & i & ".jpg")
        i = i + 1 '「i」はPrivate宣言