C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ウインドウキャプチャが出来ないものについて

[トピック内 1 記事 (1 - 1 表示)]  << 0 >>

■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;
}

引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ