WPFとGDIを使用するのは初めてで、画像の表示に問題があります。私の最終的な目標は、露出のようなものを構築することです。これまでのところ、画面をグレー表示し、アクティブなHWNDをすべて収集して、すべてのウィンドウの画面をキャプチャします。今のところ、ソースを設定しようとしている単一のImage要素がありますが、何も表示されません。
foreach (IntPtr hwnd in hwndlist)
{
IntPtr windowhdc = GetDC((IntPtr) hwnd);
IntPtr bmap = CreateBitmap(400, 400, 1, 32, null);
IntPtr bitmaphdc = GetDC(bmap);
BitBlt(bitmaphdc, 0, 0, System.Convert.ToInt32(this.Width), System.Convert.ToInt32(this.Height), windowhdc, 0, 0, TernaryRasterOperations.SRCCOPY);
ReleaseDC(hwnd, windowhdc);
BitmapSource bmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(bmap, IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
image1.Source = bmapSource;
image1.BeginInit();
}
完全なコードはここにあります:
http : //pastebin.com/m70af590-コード
http://pastebin.com/m38966750-xaml
私は今それを持っている方法が私がやろうとしていること(ループを実行して同じ画像に何度も何度も書き込む)にはあまり意味がないことを知っていますが、私はその画像に何かを持っていることを望んでいます終わり。
表示されているウィンドウのHWNDをハードコーディングしようとしましたが、それでも機能しません。
助けてくれてありがとう!