.net column
.NET開発者のためのブログメディア

Webデザイン

C#での画面キャプチャの取得方法を徹底解説!

2020年08月27日
SE
画面キャプチャについて詳しく教えてください。
PM
画面キャプチャ、もしくはスクリーンショットとも呼ばれていますね。では実際のソースコード見ながら理解を深めていきましょう。

C#での画面キャプチャについて

今回は、C#での画面キャプチャについて説明します。

スクリーン全体のキャプチャ、アクティブウィンドウのキャプチャ、矩形領域のキャプチャの方法をソースコードとともに紹介します。

C#での画面キャプチャに興味のある方はぜひご覧ください。

スクリーン全体の画面キャプチャ

C#では、スクリーン全体の画面キャプチャが取得できます。プライマリスクリーンのサイズを取得し、画面キャプチャを取得しましょう。

実際のソースコードを見てみましょう。

“画面全体”ボタンをクリックすると、プライマリスクリーンの画面キャプチャがFormに表示されます。

このように、C#ではスクリーン全体の画面キャプチャが取得できます。

アクティブウィンドウの画面キャプチャ

C#では、アクティブウィンドウの画面キャプチャが取得できます。

実際のソースコードを見てみましょう。

“アクティブウィンドウ”ボタンをクリックすると、Form自体の画面キャプチャがFormに表示されます。

Windows Vista以降のOSの場合、Form外の領域も若干キャプチャされています。

このように、C#ではアクティブウィンドウの画面キャプチャが取得できます。

アクティブウィンドウの画面キャプチャ その2

先ほどのサンプルでは、OSによってはForm外の領域も若干キャプチャされていました。

DwmGetWindowAttributeでDWMWA_EXTENDED_FRAME_BOUNDSを指定すれば、改善できます。

実際のソースコードを見てみましょう。

“アクティブウィンドウ”ボタンをクリックすると、Form自体の画面キャプチャがFormに表示されます。

先ほどのサンプルのような、Form外の領域がキャプチャされないことが分かります。

このように、C#ではアクティブウィンドウの画面キャプチャが取得できます。

矩形領域の画面キャプチャ

C#では、矩形領域の画面キャプチャが取得できます。

実際のソースコードを見てみましょう。

“矩形領域”ボタンをクリックすると、(200, 200)の座標から横800pixel、縦500pixelの矩形領域の画面キャプチャがFormに表示されます。

このように、C#では矩形領域の画面キャプチャが取得できます。

SE
画面全体の他に領域を指定した画面キャプチャ方法もあるんですね。
PM
ここまで見てきたソースコードを応用して、より理解を深めていってください。

C#で画面キャプチャの取得をしよう

いかがでしたでしょうか。C#での、スクリーン全体、アクティブウィンドウ、矩形領域などの画面キャプチャ方法についてご紹介しました。

今回紹介した画面キャプチャのサンプルを応用すれば、Snipping Toolのようなアプリを作れます。

ぜひご自身でソースコードを書いて、理解を深めてみましょう。

 


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags

Jobs