【C#】デスクトップのスクリーンショットを撮りクリップボードに貼り付けるサンプル

C#

C#を使用してデスクトップのスクリーンショットを取得し、それをクリップボードに貼りつける方法を紹介します。

準備

フォームにボタン(button1)をひとつ配置。ボタンをダブルクリックしてイベントハンドラを生成しておきます。

サンプルコード

このサンプルコードを実行すると、デスクトップの画像がクリップボードにコピーされます。Windows標準のペイントアプリ等を開いてクリップボードの内容を貼りつけると、画像を確認できます。

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Imaging;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                // デスクトップのサイズを取得
                Rectangle bounds = Screen.PrimaryScreen.Bounds;

                // スクリーンショットを保存するためのビットマップを作成
                Bitmap screenshot = new Bitmap(bounds.Width, bounds.Height, PixelFormat.Format32bppArgb);

                // ビットマップにスクリーンショットを描画
                using (Graphics g = Graphics.FromImage(screenshot))
                {
                    g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
                }

                // クリップボードに画像を設定
                Clipboard.SetImage(screenshot);
            }
            catch (Exception ex)
            {
                // 例外が発生した場合、メッセージボックスを出力
                MessageBox.Show("エラーが発生しました: " + ex.Message);
            }
        }
    }
}
タイトルとURLをコピーしました