たびたび申し訳ございません。
C#からブラウザを起動し、スクリーンショットを取得するために、
ネットで見つけたサンプルプログラムをコピペして試してみたのですが、
うまくいきません。
2種類試してみたのですが、どちらも保存のところで、
「External Exceptionはハンドルされませんでした。」というエラーになってしまう。
--
(1)画面をキャプチャする
http://dobon.net/vb/dotnet/graphics/screencapture.html
(2)スクリーンやウィンドウをキャプチャするには?[2.0のみ、C#、VB]
http://www.atmarkit.co.jp/fdotnet/dotnettips/428screencapture/screencapture.html
--
(1)画面をキャプチャする
http://dobon.net/vb/dotnet/graphics/screencapture.html
private void button4_Click(object sender, EventArgs e) { // 画像のサイズを指定し、Bitmapオブジェクトのインスタンスを作成 Bitmap bm = new Bitmap(500, 300); // 幅500ピクセル × 高さ300ピクセルの場合 // Graphicsオブジェクトのインスタンスを作成 Graphics gr = Graphics.FromImage(bm); // 画面全体をコピー gr.CopyFromScreen(new Point(0, 0), new Point(0, 0), bm.Size); // PNGで保存 bm.Save("C:\\samplePNG.png", System.Drawing.Imaging.ImageFormat.Png); ←ここで「External Exceptionはハンドルされませんでした。」というエラーになってしまう。 gr.Dispose(); }
(2)スクリーンやウィンドウをキャプチャするには?[2.0のみ、C#、VB]
http://www.atmarkit.co.jp/fdotnet/dotnettips/428screencapture/screencapture.html
private void button4_Click(object sender, EventArgs e) { // スクリーン・キャプチャする範囲を決定 Rectangle rc; rc = Screen.PrimaryScreen.Bounds; // Bitmapオブジェクトにスクリーン・キャプチャ Bitmap bmp = new Bitmap( rc.Width, rc.Height, PixelFormat.Format32bppArgb); using (Graphics g = Graphics.FromImage(bmp)) { g.CopyFromScreen(rc.X, rc.Y, 0, 0, rc.Size, CopyPixelOperation.SourceCopy); // ビット・ブロック転送方式の切り替え例: //g.FillRectangle(Brushes.LightPink, // 0, 0, rc.Width, rc.Height); //g.CopyFromScreen(rc.X, rc.Y, 0, 0, // rc.Size, CopyPixelOperation.SourceAnd); } // ビットマップ画像として保存して表示 string filePath = @"C:\screen.bmp"; bmp.Save(filePath, ImageFormat.Bmp);←ここで「External Exceptionはハンドルされませんでした。」というエラーになってしまう。 Process.Start(filePath); }
なぜ、保存がエラーになってしまうのかがわかりません。
また、「External Exceptionはハンドルされませんでした。」というエラーとは、一体何なんなのでしょう?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/02 08:47