スクリーンショットの対象が隠れているときにスクリーンショット画像を撮るには?


ss  2012-10-20 01:57:56  No: 43212

MDIアプリケーションにて、フォームの画像(スクリーンショット)を
出力し、ビットマップ保存する機能を作成しています。

下記コードでフォームの内容を画像にし、ビットマップ保存できたのですが、他のMDIのウィンドウで一部隠れているときに、
下記コードを実行すると、隠れた状態で画像が撮れてしまいました。

procedure Button1Click(Sender : TObject);
var
  bmp : TBitmap;
begin
  bmp := TBitmap.Create;
  bmp.Width := Form1.Width;
  bmp.Height := Form1.Height;
  BitBlt(bmp.Canvas.Handle, 0, 0, Form1.Width, Form1.Height, GetDC(Form1.Handle), 0, 0, SRCCOPY);
  bmp.SaveToFile('Form1.bmp');
  bmp.Free;
end;

フォームが隠れている場合でも、フォームの全体の画像を隠れない状態で、画像を作成することはできないものでしょうか?もしできるなら、その方法を教えていただいてもよろしでしょうか。


Quest  2012-10-20 02:11:20  No: 43213

こちらが参考になるかと。
https://www.petitmonte.com/bbs/answers?question_id=1664

bmp := Form1.GetFormImage;
で、いけるんじゃないかな。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加