画面を録画する方法を解説します。
なお、ここで紹介する方法では音声の録音はできません。
AForge.NETのダウンロード
録画にあたり、AForge.NETというライブラリを使用します。
下記のリンク先ページからAForge.NETをダウンロードしてください。
赤枠箇所をクリックしてzipファイルをダウンロードしてください。
![](https://work-note32.com/wp-content/uploads/2019/07/Afor.png)
アセンブリ参照(dll参照)の追加
1.ソリューションエクスプローラーの”参照”を右クリックし、[参照の追加(R)…]をクリックしてください。
![](https://work-note32.com/wp-content/uploads/2019/07/eb22bf7a906b7f73af3d68cd620dade7.png)
2.[参照]をクリックしてください。
![](https://work-note32.com/wp-content/uploads/2019/07/44d29d2792be3bad9a9ed98c7bbb20d6.png)
3. [参照(R)…]をクリックしてください。
![](https://work-note32.com/wp-content/uploads/2019/07/0e4aae38a1f5494592124a884058f7cb.png)
4. 1項でダウンロードしたzipファイルの”Release”フォルダーの中にある
“AForge.Video.VFW.dll”を選択し、[追加]をクリックしてください。
![](https://work-note32.com/wp-content/uploads/2019/07/dda9bb331e5adc2b5a3ca1088fa71280-1.png)
5[OK]をクリックしてください。
![](https://work-note32.com/wp-content/uploads/2019/07/080047c41d77c58d97cf85ec35d0e15b.png)
プログラムコードの記述
下記のようにコードを記述してください。
記述する箇所はボタンクリックイベントなどが望ましいと思います。
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 “というファイルが出力されると思います。このファイルに録画内容が保存されています。
![](https://work-note32.com/wp-content/uploads/2019/07/486359223c22c9ae1b93f7f652f68c66.png)
参考ウェブページ
本ページの内容は下記のウェブページを参考にさせていただきました。