AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Screenshot like Snipping Tool

Ein Thema von Youuuu · begonnen am 14. Okt 2022 · letzter Beitrag vom 18. Okt 2022
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#31

AW: Screenshot like Snipping Tool

  Alt 15. Okt 2022, 23:14
Das ist leider nicht ganz so simpel wie die Nutzung der GDI-Funktionen. Es gibt aber auch dafür fertige Quelltexte, die sehr einfach zu verwenden sind:
https://www.codeproject.com/Articles...-API-in-Delphi
Damit du und alle anderen euch nicht dort anmelden müsst, könnt ihr auch dieses Repository nutzen:
https://github.com/tothpaul/Delphi/t...DuplicationAPI
Das ist doch der Link aus meinem Post
Was ich an dieser Sache nicht verstehe, mir scheint es so als ob DWM ein Control Handle benötigt um darauf in Echtzeit zu Rendern/spiegeln.
Also Grundlegend arbeitet es anders als es bei GDI der Fall ist, auch mit einem DirectX-Bildformat hatte ich noch nichts am Hut aber in dem Beispiel-Quelltext aus meiner Post wird ja auch irgendwie ein TBitmap erwähnt.
Mal sehen ob ich damit was anfangen kann um im Endeffekt GetDC/ReleaseDC zu ersetzen
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
johndoe049

Registriert seit: 22. Okt 2006
170 Beiträge
 
#32

AW: Screenshot like Snipping Tool

  Alt 15. Okt 2022, 23:17
*** OFFTPIC ***
Gibt es was besseres, um Screenshots, remote, etc. zu blockieren?

Hab da einen Kunden, dessen Datenschutzbeauftragter nicht müde wird neue Anforderungen sich auszudenken.
*** OFFTPIC ***
Gib ihm das zu lesen: https://thedailywtf.com/articles/copy-protected


Der Satz ist der beste:
Zitat:
The only other explanation was worse: a software investor was stupid enough to think a desktop application could prevent a digital camera from taking photos.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#33

AW: Screenshot like Snipping Tool

  Alt 16. Okt 2022, 00:48
Das ist doch der Link aus meinem Post
Den habe ich glatt übersehen.

Da ist doch ein Beispiel dabei, in dem das ganze komplett gekapselt verwendet wird.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#34

AW: Screenshot like Snipping Tool

  Alt 16. Okt 2022, 02:44
Das ist doch der Link aus meinem Post
Den habe ich glatt übersehen.

Da ist doch ein Beispiel dabei, in dem das ganze komplett gekapselt verwendet wird.
Ja ich verstehe da nicht wie ich damit umgehen muss, dauert ein wenig bis ich mich da eingearbeitet habe.
Zurzeit habe ich noch DirectX9 eingebaut.
(Mir fällt leider kein Beispiel ein um es vernünftig auszuprobieren da bei mir auch die GDI Variante alles vom Desktop abfotographiert hat, auch Filme in einem Player)
Delphi-Quellcode:
procedure TkzScreenShot.ScreenShotDirectX9(const ALeft, ATop, ARight, ABottom: Integer);
var
  BitsPerPixel: Byte;
  pD3D: IDirect3D9;
  pSurface: IDirect3DSurface9;
  g_pD3DDevice: IDirect3DDevice9;
  D3DPP: TD3DPresentParameters;
  ARect: TRect;
  LockedRect: TD3DLockedRect;
  BMP: TBitmap;
  i, p: Integer;
begin
// MessageBox(0, 'DirectX9', 'DirectX9', MB_OK);
  FRect.Left := ALeft;
  FRect.Top := ATop;
  FRect.Right := ARight;
  FRect.Bottom := ABottom;
  FImageWidth := FRect.Right - FRect.Left;
  FImageHeight := FRect.Bottom - FRect.Top;
  BitsPerPixel := GetDeviceCaps(Application.MainForm.Canvas.Handle, BITSPIXEL);
  FillChar(d3dpp, SizeOf(d3dpp), 0);
  D3DPP.Windowed := True;
  D3DPP.Flags := D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
  D3DPP.SwapEffect := D3DSWAPEFFECT_DISCARD;
  D3DPP.BackBufferWidth := Screen.Width;
  D3DPP.BackBufferHeight := Screen.Height;
  D3DPP.BackBufferFormat := D3DFMT_X8R8G8B8;
  pD3D := Direct3DCreate9(D3D_SDK_VERSION);
  pD3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, GetDesktopWindow,
    D3DCREATE_SOFTWARE_VERTEXPROCESSING, @D3DPP, g_pD3DDevice);
  g_pD3DDevice.CreateOffscreenPlainSurface(Screen.Width, Screen.Height, D3DFMT_A8R8G8B8, D3DPOOL_SCRATCH, pSurface, nil);
  g_pD3DDevice.GetFrontBufferData(0, pSurface);
  ARect := FRect;
  pSurface.LockRect(LockedRect, @ARect, D3DLOCK_NO_DIRTY_UPDATE or D3DLOCK_NOSYSLOCK or D3DLOCK_READONLY);
  BMP := TBitmap.Create;
  try
    BMP.Width := FImageWidth;
    BMP.Height := FImageHeight;
    case BitsPerPixel of
      8: BMP.PixelFormat := pf8bit;
      16: BMP.PixelFormat := pf16bit;
      24: BMP.PixelFormat := pf24bit;
      32: BMP.PixelFormat := pf32bit;
      else
        BMP.PixelFormat := TPixelFormat.pfDevice;
    end;
    p := Cardinal(LockedRect.pBits);
    for i := 0 to FImageHeight - 1 do
      begin
        CopyMemory(BMP.ScanLine[i], Ptr(p), FImageWidth * BitsPerPixel div 8);
        p := p + LockedRect.Pitch;
      end;
    FImageWork := TBitmap.Create;
    try
      FImageWork.PixelFormat := BMP.PixelFormat;
      FImageWork.Width := BMP.Width;
      FImageWork.Height := BMP.Height;
      FCanvas.Handle := BMP.Canvas.Handle;
      if FInverted then
        begin
          FInverted := False;
          FImageWork.Canvas.CopyMode := cmSrcInvert;
        end
        else
          FImageWork.Canvas.CopyMode := cmSrcCopy;
      FImageWork.Canvas.CopyRect(
          Rect(0, 0, FImageWidth, FImageHeight),
          FCanvas,
          Rect(0, 0, FImageWidth - 1, FImageHeight - 1));
      FImage.ReleaseHandle;
      FImage.Assign(FImageWork);
    finally
      FImage.Dormant;
      FImage.FreeImage;
      FImageWork.Free;
    end;
  finally
    BMP.Free;
    pSurface.UnlockRect;
  end;
end;
// edit
Habe nachträglich mal eine Beispielanwendung zum ausprobieren angehangen, sollte alles selbsterklärend sein, so hoffe ich.
(Virus-Total meldet einen (falsch) fund:
Rising
Trojan.Generic@AI.89 (RDMK:cmRtazrbpxF5IptlRljLk8Ec4amq))
Angehängte Dateien
Dateityp: zip kzScreenShot.zip (851,9 KB, 7x aufgerufen)
Gruß vom KodeZwerg

Geändert von KodeZwerg (16. Okt 2022 um 07:23 Uhr) Grund: fixed and updated
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#35

AW: Screenshot like Snipping Tool

  Alt 16. Okt 2022, 06:26
Eine Webcam mit KI und einer Kalaschnikow.

Wenn jemand Fotoapperat, Handy oder sonstwas rausholt, oder auch nur irgendwie angestengt gut, um sich die Details zu merken,
geht der Bildschirm aus und es klickt das kleine Pistölchen, damit derjenige mitbekommt, das er was Falsches machen wollte.


OK, gegen Alles kann eh nicht abgesichert werden.

Der der eine Wahrheitsliebende hatte es geschafft kistenweise Zeugs nach Hause zu schleppen, was unter den strengsten Sicherheitsbeingungen hätte nichtmal den Raum da verlasen dürfen, sonst wird man gleich ausversehn angerschossen.
$2B or not $2B

Geändert von himitsu (16. Okt 2022 um 06:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#36

AW: Screenshot like Snipping Tool

  Alt 16. Okt 2022, 09:46
OK, gegen Alles kann eh nicht abgesichert werden.
Der Tenor ist doch eher, dass ein Verhindern eines Screenshots von vornherein schon unsinnig ist. Nur manchmal verlieren einzelne Personen im Eifer ihrer Berufsausübung ein wenig den Bezug zur Realität.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
442 Beiträge
 
Delphi 12 Athens
 
#37

AW: Screenshot like Snipping Tool

  Alt 16. Okt 2022, 10:39
OK, gegen Alles kann eh nicht abgesichert werden.
Der Tenor ist doch eher, dass ein Verhindern eines Screenshots von vornherein schon unsinnig ist. Nur manchmal verlieren einzelne Personen im Eifer ihrer Berufsausübung ein wenig den Bezug zur Realität.
Volltreffer! Sie rufen immer öfter nach technischen Vorkehrungen oder kilometerlangen Datenschutzvereinbarungen. Die Sensibilisierung der einzelnen Mitarbeiter für das Thema Datenschutz kommt dann aber oft viel zu kurz.
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
704 Beiträge
 
Delphi 12 Athens
 
#38

AW: Screenshot like Snipping Tool

  Alt 16. Okt 2022, 12:37
SetWindowDisplayAffinity/WDA_MONITOR/WDA_EXCLUDEFROMCAPTURE gehört zum DesktopWindowManager, also wird es wor allem wohl nur von dessen APIs verwendet/beachtet.
*** OFFTPIC ***
Gibt es was besseres, um Screenshots, remote, etc. zu blockieren?

Hab da einen Kunden, dessen Datenschutzbeauftragter nicht müde wird neue Anforderungen sich auszudenken.
*** OFFTPIC ***
Völlig nutzloses Feature, wo heutzutage doch jeder mit 'nem Smartphone rumläuft und einfach ein Foto des Bildschirms machen kann...
Peter Below
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#39

AW: Screenshot like Snipping Tool

  Alt 16. Okt 2022, 14:07
Es geht auch nicht um den totalen Schutz.

Wenn es danach geht, kannst du deine Haustür auch gleich ausbauen, weil sie ja nutzlos ist und die Bösen dennoch reinkommen können.
Schlösser, Tresore, Polizei ... alles sinnlos ... braucht eh Keiner, weil helfen eh nicht immer.


Aber damit kann man z.B. verhindern, dass "normale" Programmen, welche darauf hören, das machen, was du sagst.
z.B. Screenshot/Screenrecording oder sowas wie RDP/Treamviewer, welche diese API unterstützen, damit nicht ausversehn gewisse Dinge rausgehn.

oder gibt es auf Webseiten eine Datei, welche Webcrawlern sagt, ob man von ihnen verfolgt werden möchte und ob man sich dann auch in den Suchergebnissen gewisser Portale wiederfinden mönnte, bzw. ihnen auch andersrum sagen kann, was sie wie/wo suchen und veröffentlichen sollen.
Natürlich können jene Programme diese Informationen dennoch auch ganz einfach ignorieren, drum fängt man dann wiederrum z.B. mit htaccess an die auf anderem Wege auszusperren, was wiederum umgangen werden kann usw.
$2B or not $2B

Geändert von himitsu (16. Okt 2022 um 14:13 Uhr)
  Mit Zitat antworten Zitat
johndoe049

Registriert seit: 22. Okt 2006
170 Beiträge
 
#40

AW: Screenshot like Snipping Tool

  Alt 16. Okt 2022, 14:20
SetWindowDisplayAffinity/WDA_MONITOR/WDA_EXCLUDEFROMCAPTURE gehört zum DesktopWindowManager, also wird es wor allem wohl nur von dessen APIs verwendet/beachtet.
*** OFFTPIC ***
Gibt es was besseres, um Screenshots, remote, etc. zu blockieren?

Hab da einen Kunden, dessen Datenschutzbeauftragter nicht müde wird neue Anforderungen sich auszudenken.
*** OFFTPIC ***
Völlig nutzloses Feature, wo heutzutage doch jeder mit 'nem Smartphone rumläuft und einfach ein Foto des Bildschirms machen kann...
Zitat:
Volltreffer! Sie rufen immer öfter nach technischen Vorkehrungen oder kilometerlangen Datenschutzvereinbarungen. Die Sensibilisierung der einzelnen Mitarbeiter für das Thema Datenschutz kommt dann aber oft viel zu kurz.
*** OFFTPIC ***
Ihr habt beide recht. Sehe ich auch so.

Jedoch will der Datenschutzbeauftragte möglichst wenig Haftungsrisiko haben und verweist darauf, dass die DGSVO "Privacy by Design" verlangt.

Also bekommt der was eingbaut, entsprechende Hinweise und gut ist.
*** OFFTPIC ***


Zurück zum Hauptthema:

RVMedia kann seit einiger Zeit auch Screen Shots erzeugen. Auflösung des Monitors soll unterstützt werden und angeblich auch Multi-Monitor Umgebungen. Habe ich noch nicht ausprobiert. Ich verwende es für den Zugriff auf IP Kameras. Wäre ggf. eine Alternative. Demo gibt es, API Dokumentation ist auf der Webseite, bzw. in der Demo enthalten.

Ist aber nicht kostenfrei. Könnte aber ggf. interessant sein, wenn die Make or Buy Kalkulation für Make zu teuer wird.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz