Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Programm versteckt sich beim screenshot nicht (https://www.delphipraxis.net/13896-programm-versteckt-sich-beim-screenshot-nicht.html)

Predator 28. Dez 2003 18:56


Programm versteckt sich beim screenshot nicht
 
hallo Jungs.
Ich habe auf einem Formular ein Button und wenn man ihn anklickt wird das ausgeführt:

Delphi-Quellcode:
width := 750;
heigth := 563;
w := Self.Width; h:=Self.Heigth;
Self.Width:= 0; Self.Heigth:=0;
origbmp := TBitmap.Create;
origjpg := TJpegImage.Create;
changebmp := TBitmap.Create;
Self.Hide;
Application.ProcessMessages;
ScreenCapture(origbmp);
self.Width := w; Self.Heigth:=h;
Self.Show;
origjpg.Assign(origbmp);
origjpg.SaveToFile(savepath);
und die funktion für den Screenshot:
Delphi-Quellcode:
procedure ScreenCapture(Bmp: TBitmap);
var
  DeskWnd: HWnd;
  DeskDC: HDC;
  DeskCv: TCanvas;
  R: TRect;
  W, H: Integer;
begin
  if Bmp = nil then Exit;
  DeskWnd := GetDesktopWindow;
  DeskDC := GetWindowDC(DeskWnd);
  DeskCv := TCanvas.Create;
  DeskCv.Handle := DeskDC;
  W := Screen.Width;
  H := Screen.Height;
  R := Bounds(0, 0, W, H);
  try
    Bmp.HandleType := bmDIB;
    Bmp.PixelFormat := pf24Bit;
    Bmp.Width := W;
    Bmp.Height := H;
    Bmp.Canvas.CopyMode := cmSrcCopy;
    Bmp.Canvas.CopyRect(R, DeskCv, R);
  finally
    DeskCv.Free;
    ReleaseDC(DeskWnd, DeskDC);
  end;
end;
Das Problem ist, das auf dem Screenshot trotzdem noch das Programm sichtbar ist.
Also es versteckt sich nicht. Manchmal klappt das aber villeicht einmal von 30 Versuchen.

Kann jemand mal bitte einen entsprechenden cod eposten um mein problem zu beseitigen.
Ich bin schon am verzweifeln :wall: :wall: :wall: :wall:

Vielen Dank im Voraus.

fkerber 29. Dez 2003 18:50

Re: Programm versteckt sich beim screenshot nicht
 
Hi!

Weiß nicht, ob ich das richtig verstehe, aber du willst dein eigenes Programm verstecken?

Dann würde das gehen:

Delphi-Quellcode:
ShowWindow(GetWindow(Application.Handle,GW_OWNER),SW_HIDE);
Hoffe, das triffts!

Ciao fkerber


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz