こんにちは。
Windows10でWindows Formのアプリケーションを開発しています。
Visual Studio 2017 Communityを使っています。
###前提・実現したいこと
Windows10を使用しています。
ディスプレイを複数つないでいます。
A, Bとします。
Bはデスクトップのカスタマイズで、
『テキスト、アプリ、その他の項目のサイズを変更する』で倍率を上げています。
この状態で、Bをキャプチャをしたいです。
Screen.Primry.Boundsでサイズを取得し、BmpクラスのSaveで
画面全体をキャプチャするコードを書いています。
###発生している問題・エラーメッセージ
下記設定をしてもまだ、保存した画像を見ると、実際の画面イメージより小さく、下と右が途切れます。
(1)プロジェクトの.NETのバージョンを4から4.7にしました。
(2)app.manifestファイルを追加し
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
のコメントを外して有効化しました。
###該当のソースコード
C#
1 private void captureFullScreen() 2 { 3 //Bitmapの作成 4 Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width, 5 Screen.PrimaryScreen.Bounds.Height); 6 //Graphicsの作成 7 Graphics g = Graphics.FromImage(bmp); 8 //画面全体をコピーする 9 g.CopyFromScreen(new Point(0, 0), new Point(0, 0), bmp.Size); 10 //解放 11 g.Dispose(); 12 13 14 bmp.Save(this.path + @"\scr" + this.iCaptureCount + ".jpg", ImageFormat.Jpeg); 15 }
###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2017
Version 15.0.26228.9 D15RTWSVC
Microsoft .NET Framework
Version 4.6.01586
です。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー