Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Vista Screenshoot ohne Sidebar (https://www.delphipraxis.net/144406-vista-screenshoot-ohne-sidebar.html)

Mavarik 7. Dez 2009 11:05


Vista Screenshoot ohne Sidebar
 
Hallo Zusammen!

Ich habe gerade einen komischen Effekt...

Zugegeben innerhalb von VMWare...

Wenn ich bei Vista einen Screenshoot machen, fehlt die Sidebar und alles was darauf ist.

Auch werden mir keine Tooltips mit "aufgenommen"...

Habe ich etwas verpasst?

Ich nutze:

Delphi-Quellcode:
DeskWnd := GetDesktopWindow;
DeskDC := GetWindowDC(DeskWnd);
DeskCv := TCanvas.Create;
DeskCv.Handle := DeskDC;
try
  BitBlt(AktBMP.Canvas.Handle,0,0,ScreenWidth,ScreenHeight,DeskDC,0,0,SrcCopy) // #todo hier die "richtigen" parameter noch setzen...
finally
  DeskCv.Free;
  ReleaseDC(DeskWnd, DeskDC);
end;
Jemand ne Idee?

Mavarik :coder:

Neutral General 7. Dez 2009 11:32

Re: Vista Screenshoot ohne Sidebar
 
Naja die Sidebar ist nunmal nicht der Desktop

patti 7. Dez 2009 12:54

Re: Vista Screenshoot ohne Sidebar
 
Probier mal folgendes aus:

Delphi-Quellcode:
DeskDC := GetWindowDC(0);
Wie das in einer VM ausschaut, weiß ich nicht, aber einen Versuch ist es zumindest wert.

Mavarik 7. Dez 2009 13:15

Re: Vista Screenshoot ohne Sidebar
 
Zitat:

Zitat von Neutral General
Naja die Sidebar ist nunmal nicht der Desktop

Naja aber Desktop sollten schon alle Pixel auf den Desktop sein, oder?

Wenn ich mir STRG+Druck ein Screenshoot in das Clipboard mache ist die Sidebar ja auch dabei!

Mavarik :gruebel:

leddl 7. Dez 2009 13:30

Re: Vista Screenshoot ohne Sidebar
 
Zitat:

Zitat von Mavarik
Naja aber Desktop sollten schon alle Pixel auf den Desktop sein, oder?

Nein, der Desktop ist eben nur der Desktop, und nicht alles was drauf ist. Wenn du von deinem Schreibtisch ein Foto machst, und vorher alles von der Schreibtischplatte runterräumst , sind deine Ordner schließlich später auch nicht auf dem Bild zu sehen :mrgreen:
Zitat:

Zitat von Mavarik
Wenn ich mir STRG+Druck ein Screenshoot in das Clipboard mache ist die Sidebar ja auch dabei!

Dabei machst du aber eben auch einen Screenshot der aktuellen Anzeige, nicht des Desktops ;)

Äpfel und Birnen :mrgreen:

//edit:
BTW, welche besondere Funktion soll STRG+Druck haben? :gruebel: Ich kenne nur ALT+Druck für das aktuelle Fenster. Eben beim Ausprobieren konnte ich keinen Unterschied zwischen Druck (ohne Sondertaste) und STRG+Druck feststellen?

Bernhard Geyer 7. Dez 2009 13:37

Re: Vista Screenshoot ohne Sidebar
 
Bedenke auch das unter Win7 diese "Sidebar" ihren inhalt kreuzweise auf dem Desktop verteilen kann.

patti 7. Dez 2009 14:03

Re: Vista Screenshoot ohne Sidebar
 
Das kann ich unter Windows Vista aber auch. Einfach das Widget aus der Sidebar an die gewünschte Position am Desktop ziehen - fertig!

Mavarik 7. Dez 2009 14:03

Re: Vista Screenshoot ohne Sidebar
 
Zitat:

Zitat von Bernhard Geyer
Bedenke auch das unter Win7 diese "Sidebar" ihren inhalt kreuzweise auf dem Desktop verteilen kann.

Das ist ja auch ok... Aber eigentlich ist die Sidebar "nur" eine Programm... Und daher sollte das Fenster sichtbar sein...

Witzigerweise kann ich auch keine Tool-Tipps grebben...

Mavarik :wiejetzt:

patti 7. Dez 2009 14:13

Re: Vista Screenshoot ohne Sidebar
 
Hast du meine Vermutung aus #3 schonmal ausprobiert?
So mache ich bei mir immer die Screenshots und das hat bisher immer ohne Probleme funktioniert.

Neutral General 7. Dez 2009 14:13

Re: Vista Screenshoot ohne Sidebar
 
...

Wie gesagt. Der Desktop besteht NUR aus dem Hintergrundbild und den darauf liegenden Icons. Da werden keine Tooltips, keine Sidebars und auch sonst nichts anderes mit auf dem Bild sein.

Wenn du einen Screenshot von dem, was gerade zu sehen ist haben willst, dann musst du (wie schon gesagt) GetDC(0) benutzen.

leddl 7. Dez 2009 14:56

Re: Vista Screenshoot ohne Sidebar
 
Zitat:

Zitat von Mavarik
Das ist ja auch ok... Aber eigentlich ist die Sidebar "nur" eine Programm... Und daher sollte das Fenster sichtbar sein...

:gruebel: Liest du Antworten auch durch, oder macht ignorieren einfach mehr Spaß? :stupid:
Zitat:

Zitat von Neutral General
Naja die Sidebar ist nunmal nicht der Desktop

Zitat:

Zitat von leddl
Nein, der Desktop ist eben nur der Desktop, und nicht alles was drauf ist.

Zitat:

Zitat von patti
Das kann ich unter Windows Vista aber auch. Einfach das Widget aus der Sidebar an die gewünschte Position am Desktop ziehen - fertig!

Ich frage mich schon seit Ewigkeiten, warum das immer wieder als tolles neues Feature von Windows 7 aufgeführt wird :lol: Das war eines der ersten Dinge, die ich nach Installation von Vista gemacht habe :mrgreen:

Mavarik 7. Dez 2009 15:25

Re: Vista Screenshoot ohne Sidebar
 
Zitat:

Zitat von leddl
Liest du Antworten auch durch, oder macht ignorieren einfach mehr Spaß? :stupid:

Ja aber es macht eben keinen Unterschied...

Auch ob GetDC(0) hat keine Sidebar...

Mavarik

patti 7. Dez 2009 18:50

Re: Vista Screenshoot ohne Sidebar
 
Zitat:

Zitat von leddl
Zitat:

Zitat von patti
Das kann ich unter Windows Vista aber auch. Einfach das Widget aus der Sidebar an die gewünschte Position am Desktop ziehen - fertig!

Ich frage mich schon seit Ewigkeiten, warum das immer wieder als tolles neues Feature von Windows 7 aufgeführt wird :lol: Das war eines der ersten Dinge, die ich nach Installation von Vista gemacht habe :mrgreen:

Die einzige Neuerung ist doch, dass es die Sidebar so nicht mehr gibt, oder? Die haben also was weggelassen und schon ist es ein neues Feature ;-)

@Topic: Funktioniert es außerhalb der VM denn richtig?

Mavarik 9. Dez 2009 08:30

Re: Vista Screenshoot ohne Sidebar
 
Update:

Also ich habe "einen" Unterschied herausgefunden...

Wenn Vista im Aero-Modus läuft ist die Sidebar auch bei einem GetDC(0) dabei..
läuft Vista im non-Aero Modus fehlt die Sidebar...

Update:

Die Sidebar ist nur enthalten bei "Windows-Aero" & "Windows-klassisch" bei
"Windows Vista-Basis" & "Windows-Standard" ist sie weg!



Vielleicht hat ja noch jemand ne Idee...

Mavarik :gruebel:

patti 9. Dez 2009 12:29

Re: Vista Screenshoot ohne Sidebar
 
Dann hab ich eine Idee: Es liegt wahrscheinlich an der Transparenz der Sidebar. Hatte sowas ähnliches vor kurzem auch mal. Probier mal beim Screenshot-Machen folgendes aus:

Delphi-Quellcode:
const CAPTUREBLT = $40000000;
begin
  //--
  BitBlt((*...*), SRCCOPY OR CAPTUREBLT);
Das sollte helfen. Allerdings funktioniert dies anscheinend nicht, wenn du es über StretchBlt machst, wenn du also einen "verzerrten" Screenshot machen willst. Für einen Schnappschuss in 1:1 sollte es aber auf jeden Fall funktionieren ;-)

MFG
Patti

Mithrandir 9. Dez 2009 12:39

Re: Vista Screenshoot ohne Sidebar
 
Zitat:

Zitat von leddl
Ausprobieren konnte ich keinen Unterschied zwischen Druck (ohne Sondertaste) und STRG+Druck feststellen?

Und ich Idiot verrenke mir seit Jahren die Finger mit STRG+Druck... :wall: :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16: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