- PR -

.NETでスクリーンキャプチャー セーブが変!?

1
投稿者投稿内容
andy
会議室デビュー日: 2002/11/22
投稿数: 13
投稿日時: 2003-01-17 15:58
(ご存知の方もいらっしゃると思いますが...)
2日ぐらい試行錯誤しながら、やっとスマートな方法でスクリーンキャプチャする
ことに成功しました。

ソースの要約は、、、

Graphics disp_g = some_control1.CreateGraphics();
IntPtr disp_hDC = disp_g.GetHdc();

Bitmap bmp = new Bitmap( size.Width, size.Height );
Graphics bmp_g = Graphics.FromImage( bmp );
IntPtr bmp_hDC = bmp_g.GetHdc();

bool ret = BitBlt( bmp_hDC, 0, 0, bmp.Width, bmp.Height, disp_hDC, 0, 0, 0x00CC0020 );

bmp_g.ReleaseHdc( bmp_hDC );
bmp_g.Dispose();

disp_g.ReleaseHdc( bmp_hDC );
disp_g.Dispose();

さて、問題は、このビットマップをファイルにセーブしたいのですが、
どうもうまくいきません。(真っ黒になる)

最悪、
Clipboard.SetDataObject( bmp );
は成功しているので、使い物にはなるのですが、

もしこの問題の解決法をご存知の方がいらっしゃったらお教え下さい。
よろしくお願いします。

andy
会議室デビュー日: 2002/11/22
投稿数: 13
投稿日時: 2003-01-17 16:01
ソースに間違いがありました。
誤 disp_g.ReleaseHdc( bmp_hDC );
正 disp_g.ReleaseHdc( disp_hDC );

1

スキルアップ/キャリアアップ(JOB@IT)