【c#】画面を録画する方法

画面を録画する方法を解説します。
なお、ここで紹介する方法では音声の録音はできません。

AForge.NETのダウンロード

録画にあたり、AForge.NETというライブラリを使用します。
下記のリンク先ページからAForge.NETをダウンロードしてください。

AForge.NETをダウンロード ページへ

赤枠箇所をクリックしてzipファイルをダウンロードしてください。

説明画像

アセンブリ参照(dll参照)の追加

1.ソリューションエクスプローラーの”参照”を右クリックし、[参照の追加(R)…]をクリックしてください。

1の説明画像

2.[参照]をクリックしてください。

2の説明画像

3. [参照(R)…]をクリックしてください。

3の説明画像

4. 1項でダウンロードしたzipファイルの”Release”フォルダーの中にある
“AForge.Video.VFW.dll”を選択し、[追加]をクリックしてください。

4の説明画像

5[OK]をクリックしてください。

5の説明画像

プログラムコードの記述

下記のようにコードを記述してください。
記述する箇所はボタンクリックイベントなどが望ましいと思います。

AForge.Video.VFW.AVIWriter aviWriter = new AForge.Video.VFW.AVIWriter();

Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics g = Graphics.FromImage(bitmap);

aviWriter.FrameRate = 10;
aviWriter.Open("test.avi", Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);

for (int i = 0; i < 100; i++)
{
    g.CopyFromScreen(new Point(0, 0), new Point(0, 0), bitmap.Size);
    aviWriter.AddFrame(bitmap);
    await Task.Delay(100);
}

bitmap.Dispose();
g.Dispose();

aviWriter.Close();

MessageBox.Show("録画が完了しました。");

【2019/07/23 追記】
上記のコードの場合、動画ファイルの容量が2GBあたりを超えると保存できなくなってしまいますのでファイルの容量が2GB付近になるとファイルを分割する処理を考えました。

ファイルの出力場所

プロジェクトのbin\Debug(または bin\Release)フォルダーに”test.avi “というファイルが出力されると思います。このファイルに録画内容が保存されています。

説明画像

参考ウェブページ

本ページの内容は下記のウェブページを参考にさせていただきました。

タイトルとURLをコピーしました