■90237 / inTopicNo.1) |
ウインドウキャプチャが出来ないものについて |
□投稿者/ 走りるカメ (1回)-(2019/02/18(Mon) 22:04:01)
|
分類:[C#]
いつもお世話になっております。
開発環境
OS WIndows10 Pro
開発ソフト VS2017 community
言語 C# WPF
C# Win32APIでウインドウキャプチャを行っているのですが、一部のウインドウをキャプチャすることが出来ません。
キャプチャ出来ない場合は一度だけ取得ができる場合があり、その後最新の画面が取得出来なくなります。
出来る場合があるため、ハンドル等がおかしいのかと思いましたが、うまくいっておりません。
知恵を貸していただけないでしょうか。
隠れている場合も取得したいのでフルスクリーンは使用していません。
参考URL https://dobon.net/vb/dotnet/graphics/screencapture.html
public Bitmap CaptureActiveWindow(IntPtr hWnd)
{
//アクティブなウィンドウのデバイスコンテキストを取得
IntPtr winDC = GetWindowDC(hWnd);
//ウィンドウの大きさを取得
RECT winRect = new RECT();
GetWindowRect(hWnd, out winRect);
//Bitmapの作成
Bitmap bmp = new Bitmap(winRect.right - winRect.left,
winRect.bottom - winRect.top);
//Graphicsの作成
Graphics g = Graphics.FromImage(bmp);
//Graphicsのデバイスコンテキストを取得
IntPtr hDC = g.GetHdc();
//Bitmapに画像をコピーする
BitBlt(hDC, 0, 0, bmp.Width, bmp.Height,
winDC, 0, 0, SRCCOPY | CAPTUREBLT);
//解放
g.ReleaseHdc(hDC);
g.Dispose();
ReleaseDC(hWnd, winDC);
return bmp;
}
|
|