AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ScreenShot von nichtsehbaren Desktop
Thema durchsuchen
Ansicht
Themen-Optionen

ScreenShot von nichtsehbaren Desktop

Offene Frage von "Neotracer"
Ein Thema von SleepyMaster · begonnen am 21. Okt 2004 · letzter Beitrag vom 1. Jan 2012
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#1

ScreenShot von nichtsehbaren Desktop

  Alt 21. Okt 2004, 11:07
Hi ihrs

weiß jemand von euch wie man den DC von einem Desktop erhält den man nicht sieht (CreateDesktop/EnumDesktops)?

Vielen Dank
  Mit Zitat antworten Zitat
Sascha999999999

Registriert seit: 28. Sep 2006
45 Beiträge
 
#2

Re: ScreenShot von nichtsehbaren Desktop

  Alt 16. Dez 2006, 11:18
Hat jemand eine Lösung für das Problem?

Die Screenhots werden immer Weis:

Delphi-Quellcode:
procedure ScreenShot(Bild: TBitMap; Desk: TThreadDesktop = nil);
var
  c: TCanvas;
  r: TRect;
begin
  c := TCanvas.Create;
  if(sdgfg=nil) then begin
  c.Handle := GetWindowDC(GetDesktopWindow);
  end
  else begin
  c.Handle := Desk.Handle;
  end;
  try
    r := Rect(0, 0, Screen.Width, Screen.Height);
    Bild.Width := Screen.Width;
    Bild.Height := Screen.Height;
    Bild.Canvas.CopyRect(r, c, r);
  finally
    ReleaseDC(0, c.Handle);
    c.Free;
  end;
end;
Danke!

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: ScreenShot von nichtsehbaren Desktop

  Alt 16. Dez 2006, 13:01
Moin Sascha,

ich hab's mir mal etwas vereinfacht

Delphi-Quellcode:
procedure ScreenShot(Bild: TBitMap);
var
  c: TCanvas;
  r: TRect;
begin
  c := TCanvas.Create;
  c.Handle := GetWindowDC(GetDesktopWindow);
  try
    r := Rect(0, 0, Screen.Width, Screen.Height);
    Bild.Width := Screen.Width;
    Bild.Height := Screen.Height;
    Bild.Canvas.CopyRect(r, c, r);
  finally
    ReleaseDC(0, c.Handle);
    c.Free;
  end;
end;
aber in der Hauptsache bei Deinem Code belassen:

Kein Problem, das funktioniert so.

Hast Du eventuell den CopyMode des Bitmap-Canvas verstellt?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#4

Re: ScreenShot von nichtsehbaren Desktop

  Alt 16. Dez 2006, 13:30
kann es sein des du versuchst aus einem service einen screenshot zu machen?
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: ScreenShot von nichtsehbaren Desktop

  Alt 16. Dez 2006, 13:30
Hallo,

soviel ich weiß, existiert kein Fenterbereich, den Windows nicht tatsächlich anzeigt. Deshalb kannst Du wahrscheinlich auch nur einen Screenshot des aktuell angezeigten Desktops machen.

@Christian: Deine Routine erstellt nur einen Screenshot des aktuellen Desktops. Das funktioniert natürlich.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: ScreenShot von nichtsehbaren Desktop

  Alt 16. Dez 2006, 13:39
Wenn es also nicht geht, dann halt kurzzeitig auf den anderen Desktop umschalten, Bild machen und schnell wieder zurückschalten.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#7

Re: ScreenShot von nichtsehbaren Desktop

  Alt 17. Dez 2006, 04:47
Zitat von himitsu:
Wenn es also nicht geht, dann halt kurzzeitig auf den anderen Desktop umschalten, Bild machen und schnell wieder zurückschalten.
LOL. Wenn man das noch effektiver gestalten will, kann man unterschwellige Botschaften ala "du siehst das kurze Umschalten des Desktops nicht" in großen Buchstaben für Sekundenbruchteile einblenden
  Mit Zitat antworten Zitat
Sascha999999999

Registriert seit: 28. Sep 2006
45 Beiträge
 
#8

Re: ScreenShot von nichtsehbaren Desktop

  Alt 30. Dez 2006, 23:57
hi,

erstmal danke für die vielen Antworten, leider war die lösung immernochnicht dabei,

ist es villeicht möglich mit "CreateProcess" (genauso wie den Explorer) einen Prozess zu erstellen der Screenhots macht und diese an den Hauptprozess sendet?

Danke
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#9

Re: ScreenShot von nichtsehbaren Desktop

  Alt 31. Dez 2006, 00:10
Doch die Lösung war dabei. Entweder du schaltest ihn schnell sichtbar oder es geht nicht. Du solltest dir einfach nur mal deine eigene Frage vor Augen führen und dir überlegen wie sinnvoll ein solches Unterfangen an sich ist und wie sinnvoll es ist, das Windows veranlaßt werden soll einen Desktop zu zeichnen, den es nicht anzeigt.
  Mit Zitat antworten Zitat
Sascha999999999

Registriert seit: 28. Sep 2006
45 Beiträge
 
#10

Re: ScreenShot von nichtsehbaren Desktop

  Alt 4. Jan 2007, 02:47
naja, entweder binn ich blind oder hier list jemand nicht richtig, die Lösung war wahr ehr nicht dabei!

Also es wird ja ein Aktiver Desktop erstellt, der auch dereichbar ist, man kann ja auch SnapHots von Programmen erstellen die minimirt sind!

ich probier das mal, wenn ich wollt kann ich euch dann ja auch mal mitteilen ob das geklappt hat oder nicht.


..........
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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 16:46 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