完全なスクロールウィンドウのスクリーンショットを取得する最も簡単な方法はC#ですか?C#でのスクロールウィンドウのスクリーンショットの取得方法
ここでは、Webブラウザを使用して例を挙げていますが、この場合のウィンドウはWindowsデスクトップアプリケーションです。
完全なスクロールウィンドウのスクリーンショットを取得する最も簡単な方法はC#ですか?C#でのスクロールウィンドウのスクリーンショットの取得方法
ここでは、Webブラウザを使用して例を挙げていますが、この場合のウィンドウはWindowsデスクトップアプリケーションです。
私はこれをWin APIを使用して複数のスクリーンショットを取得し、それぞれをスクロールして結合しました。
WM_PRINTとWM_PRINTCLIENTを使用して、WM_PAINTをオフスクリーンバッファにリダイレクトするウィンドウを得ることができます。これは、ウィンドウの隠れた部分(他のウィンドウの後ろ)が、とにかくペイントされていることを確認するので、スクリーンスクレイピングより優れています。子ウィンドウの位置をスクロールしてターゲットウィンドウをスクロールする場合は、WM_PRINTを適用する必要があります。あなたのシナリオに役立つかもしれません。
コードのわずか3行は
Bitmap b = new Bitmap(pnlOuter.Width, pnlOuter.Height);
pnlOuter.DrawToBitmap(b, new Rectangle(0, 0, pnlOuter.Width, pnlOuter.Height));
b.Save("D:\\bitmapImage.jpg");
pnlOuter
十分であるすべての内部コントロールを含むように拡張された高さ画像に示されるべきすべてのコントロールが含まパネルです。フォームを含むフォームにスクロールバーを有効にすることができます。
どのようにスクロールしましたか?その部分がロードされたときの最初のスクロール後に、スクリーンショットを取得し、スクリーンショットイベントを検出し、次にスクロールするイベントと同様に? – zeetit