Español
Foro

Hecho: Screenshot OHNE el Programmfenster

 
- Página 1 -



Sven
Bader
Sombrero irgendjemand una solución en seinem Fundus, una Screenshot sin el aktuelle Programmfenster a hacer o. insbesondere una Screenshot de el qué gerade bajo mi Programmfenster es a hacer?

Was Yo así vorhabe?
Yo arbeite viel con freien Fensterformen, en denen el Kanten desafortunadamente siempre angefressen aussehen wegen fehlendem Antialiasing. Nun Yo una solución programmiert, welche con uno Alphamaske el Pixel en el Randbereich entsprechend con el Hintergrund mischt y así weiche Kanten producido. Problemas hay entonces, si se el Hintergrund ändert oder Yo el Ventana sólo una kleines Stück verschiebe - deshalb brauche Soy un Screenshot de el qué bajo el Programmfenster es.

Wenn lo entonces veces funktioniert, lugar Yo, el Code gerne disponible
 
05.10.2009  
 



 
- Página 1 -



Andreas
Miethe


IF, Beitrag=54398, Zeitpunkt=06.10.2009
Hehe nett, genau, Yo hatte me auch ya überlegt, el Ventana simplemente se dibujar que se o. el Zeichnung abzukopieren.

Yo kannte el user32s PrintWindow Función garnicht, simplemente super Andreas!


Gracias !

Und hier todavía una Ejemplo para todos sichtbaren Ventana sin el propio. Sollte entonces wohl el ser qué como gesucht wurde ?
Vieleicht puede Ganze todavía una wenig optimiert voluntad.
KompilierenMarcaSeparación
 $H Windows.ph
 $H Messages.ph
Struct RECT = left&,top&,right&,bottom&
cls

Proc GetDesktop

    Declare h&
    h& = ~FindWindow("Progman",0)
    h& = ~FindWindowEx(h&, 0, "SHELLDLL_DefView",0)
    h& = ~FindWindowEx(h&, 0, "Internet Explorer_Server",0)

    if h& > 0

        Return h&

    else

        h& = ~FindWindow("Progman",0)
        h& = ~FindWindowEx(h&, 0, "SHELLDLL_DefView",0)
        h& = ~FindWindowEx(h&, 0, "SysListView32",0)
        Return h&

    endif

EndProc

erstmal ein DC für den Bildschirm
Var C_DC& = ~CreateCompatibleDC(%hdc)
Var C_Bitmap& = ~CreateCompatibleBitmap(%hdc,%maxx,%maxy)
~SelectObject(C_DC&,C_Bitmap&)
~ReleaseDC(C_DC&)
~SetStretchBltMode(C_DC&,~COLORONCOLOR)
FensterArray anlegen
DECLARE Windows&[],Anzahl&
sichtbare Fenster durchnumerieren
~EnumWindows(ProcAddr("NumWins",2),0)
zusammenblitten
MakePicture()
und gestreckt ins Fenster
~StretchBlt(%hdc2,0,0,width(%hwnd),height(%hwnd),C_DC&,0,0,%maxx,%maxy,~srccopy)
Repaint
~DeleteObject(C_Bitmap&)
~DeleteDC(C_DC&)
Waitinput
End

Proc Numwins

    Fensterhandle in Array
    Parameters wnd&,lParam&
    das eigene Fenster ausnehmen

    If ~IsWindowVisible(Wnd&) And (Wnd& <> %hwnd)

        Windows&[Anzahl&] = wnd&
        Inc Anzahl&

    Endif

    Return 1

EndProc

Proc MakePicture

    zusammenblitten
    Var R# = New(Rect)
    Declare W&,H&,DC&,Bitmap&
    in umgekehrter Reihenfolge

    Whileloop Anzahl&-1,0,-1

        ~GetWindowRect(Windows&[&Loop],R#)
        W& = Int(R#.right&-R#.left&)
        H& = Int(R#.bottom&-R#.top&)
        DC& = ~CreateCompatibleDC(%hdc)
        Bitmap& = ~CreateCompatibleBitmap(%hdc,W&,H&)
        ~SelectObject(DC&,Bitmap&)
        ~ReleaseDC(DC&)
        External("user32.dll","PrintWindow",Windows&[&Loop],DC&,0)
        ~Bitblt(C_DC&,R#.left&,R#.top&,R#.Right,R#.bottom&,DC&,0,0,~srccopy)
        ~DeleteObject(Bitmap&)
        ~DeleteDC(DC&)

    Endwhile

    Di
/a> R# ENDPROC
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
06.10.2009  
 



 
- Página 2 -



Dieter
Zornow
Also en funktioniert el Sache por desgracia, no así toll. Lo se una bastante zerstörter Bildschirm hinterlassen, el I, con final oder starten uno Programmes otra vez herstellen muss. Auch el Taskleiste muss Yo por überfahren el Elemente otra vez herstellen.
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
07.10.2009  
 



Könntest Usted vom Unheil una Screenshot hacer?
 
07.10.2009  
 




Andreas
Miethe


Dieter Zornow, Beitrag=54400, Zeitpunkt=07.10.2009
Also en funktioniert el Sache por desgracia, no así toll. Lo se una bastante zerstörter Bildschirm hinterlassen, el I, con final oder starten uno Programmes otra vez herstellen muss. Auch el Taskleiste muss Yo por überfahren el Elemente otra vez herstellen.


Sieht así de, dass algunos Sistema-Ventana de XP con PrintWindow no klarkommen.Bajo Vista klappt lo sin Problemas.
Der Ansatz debería aber correcto ser. Lo muss sólo todavía una gescheiter Filter para el Sistema-Ventana rein.
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
07.10.2009  
 




Sven
Bader
Der Ansatz es muy interessant. Yo befürchte desafortunadamente, dass lo a Stabilität y Geschwindigkeit mangelt. Mir es folgendes aufgefallen:

XP:
-Der Desktop se siempre schwarz dargestellt
-Alle Ventana son "zerstört" y necesario neugezeichnet voluntad

Vista:
-El rechte Hälfte des Desktops se schwarz dargestellt
-Fensterschatten voluntad no dargestellt
 
08.10.2009  
 




Andreas
Miethe


Sven Bader, Beitrag=54407, Zeitpunkt=08.10.2009
Der Ansatz es muy interessant. Yo befürchte desafortunadamente, dass lo a Stabilität y Geschwindigkeit mangelt. Mir es folgendes aufgefallen:

XP:
-Der Desktop se siempre schwarz dargestellt
-Alle Ventana son "zerstört" y necesario neugezeichnet voluntad

Vista:
-El rechte Hälfte des Desktops se schwarz dargestellt
-Fensterschatten voluntad no dargestellt


¡Hola Sven,
entonces Todavía algo Interessantes para Usted. Damit kannst Usted auch freie Fensterformen hacer.

110 kB
Hochgeladen:18.10.2009
Ladeanzahl181
Descargar
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
18.10.2009  
 




Frank
Abbing
Sombrero ReleaseDC() no zwei Parámetro?
 
20.10.2009  
 



Klar 2 [...]  . Was mich siempre otra vez daran erinnert, dass unsere HeaderFiles desafortunadamente no Parameterdefinitionen beinhalten sodass uno no automáticamente überprüfen dejar kann.
 
20.10.2009  
 




Andreas
Miethe


¡Hola zusammen,
el Ganze es eigentlich muy simplemente, si uno lo porque blanco.
BitBlt ignoriert Layered-Windows.
Also el Ventana simplemente layered hacer y ya va el Screenshot sin el Ventana.

@Franco, Usted liest sí hier con, el betrifft auch Su Shooter-Tool,
Willst Usted así auch Layered-Windows einfangen entonces muss el Bitblt-Flag en ~CAPTUREBLT erweitert voluntad.
KompilierenMarcaSeparación
 $H Windows.ph
window %maxx/4,%maxy/4-%maxx/2,%maxy/2
SetStyle %Hwnd,1, GetStyle(%hwnd,1) | $80000
External("User32.dll","SetLayeredWindowAttributes",%hwnd,0,255,2)
waitinput
Var ScreenDC& = ~CreateDC("DISPLAY",0,0,0)
Var NB& =Create("hNewPic",%maxx,%maxy,0)
Startpaint nb&
~BitBlt(%hdc,0,0,%maxx,%maxy,ScreenDC&,0,0,~srccopy)
EndPaint
~DeleteDC(ScreenDC&)
DrawSizedPic NB&,0,0-width(%hwnd),Height(%hwnd);0
waitinput
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
25.10.2009  
 




Frank
Abbing

@Franco, Usted liest sí hier con, el betrifft auch Su Shooter-Tool,
Willst Usted así auch Layered-Windows einfangen entonces muss el Bitblt-Flag en ~CAPTUREBLT erweitert voluntad.


Gracias para el Referencia! Bin en el letzten Tagen auch en el Flag gestossen, es wirklich interessant. Schau veces, hier verwende Yo ihn erstmals: [...] 
 
25.10.2009  
 




Andreas
Miethe


Posesiones Yo verfolgt, muy interessant.

Mit es aufgefallen en mi Screenshot-Tool y meiner neuen Desktopuhr ( es aún en Betastadium ), el wurde auch no eingefangen.

63 kB
Hochgeladen:25.10.2009
Ladeanzahl153
Descargar
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
25.10.2009  
 




Frank
Abbing
Werde en Gelegenheit ändern, si yo el Shooter-Code otra vez offen tener.
 
25.10.2009  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

15.242 Views

Untitledvor 0 min.
Sven Bader09.03.2021
kustg11.12.2019
AndreasS17.12.2018
Wolfgang29.11.2016
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie