Deutsch
Forum

Bildschirmspeicher auslesen

 

Georg
Bernhardt
Hallo,

gibt es eine Möglichkeit den gesamten Inhalt eines Fensters z.B. aus einem Browserfenster, das nicht ganz auf den Bildschirm passt (Scrollbalken rechts) auszulesen und in ein Grafikdatei zu speichern? Für Firefox gibt es eine Erweiterung, die das macht (ScreenGrab). Ich brauche aber ein Programm, das generell einsetzbar ist. Hat da jemand ein Idee?

Gruß

Georg
 
XProfan 10
05.02.2006  
 



Nein für eine generell-funktionierende Lösung fehlt es hier der Windows-GUI am nötigen Wissen.

Die Windows-GUI weiss nämlich selbst nicht was :

a) hinter einem Fenster für Pixel liegen
b) ausserhalb des Anzeigebereiches für Pixel liegen

Demzufolge kann dies immer nur von der eigendlichen Anwendung selbst erzeugt werden.
 
05.02.2006  
 




Frank
Abbing
Hallo,

sowas Ähnliches wurde schon öfter diskutiert.
Es ist so wie iF es angedeutet hat. Ein Programm benötigt in der Regel einen HDC und eine Bitmap, um sein Fenster damit zu füllen. Zumindest eine Bitmap. Sobald Windows meldet, das ein Fenster neu gezeichnet werden muss, kopiert das Programm seinen HDC neu in den Fenster-DC. Windows selber kümmert sich aber um das Clipping und übernimmt dabei nur die beschnittenen Grafikdaten.
Möchte jetzt ein Fremdprogramm die Grafikdaten auslesen, kann es nur den Fensterhandle ermitteln und damit auch nur den Fenster-DC. Und somit erhält es nur die beschnittenen Daten. An die originalen Daten kann es nicht heran, weil der HDC für die Fensterrestaurierung nur dem Originalprogramm bekannt ist.
Ich sehe aber zwei Möglichkeiten, doch zum Ziel zu gelangen.

1. Das Originalprogramm stellt über eine Schnittstelle den Handle auf seinen Restaurierungs-HDC zur Verfügung.

2. Snap-Programm analysiert den Maschinencode auf Vorkommen der API BitBlt(). Oder patched BitBlt() direkt. Ist aber nur was für echte Gurus. Also vergiss es.
 
05.02.2006  
 




Georg
Bernhardt
Hallo,

ich bastele immer noch daran herum ein Browserfenster vollständig auszulesen und nun müßte ich wissen, wie man die Bildschirmkoordinaten eines anderen Fensters (z.B.) Browserfenster (%getfocus?) auslesen kann. Darüber lege ich ein Profanfenster und mache einen Screenshot usw. usw.

Georg
 
XProfan 10
06.02.2006  
 




Frank
Abbing
API:

GetWindowRect()
GetClientRect()
 
06.02.2006  
 




Georg
Bernhardt
Hallo,

warum klappt das, Browserfenster ist aktuell

browserwin& = %getfocus
sendkey(browserwin&,34)

scrollt die Seite im Browserfenster

und das nicht

Beispiel zu api_GetWindowRect,USER32

Def @Getwindowrect(2) !USER32, GetWindowRect

Declare B#,Browserwin&, xl&,xr&,yo&,yu&
Browserwin& = %getfocus

Dim B#,16
@Getwindowrect(Browserwin&,B#)
xl& =Long(B#,0),
yo&=Long(B#,4)
xr&=Long(B#,8)
yu&=Long(B#,12)

Die Werte sind dann 0
Versteh ich nicht. Hat jemand eine Antwort?

Georg
 
XProfan 10
07.02.2006  
 




Jac
de
Lad
Ich kanns grad nicht ausprobieren, aber vielleicht hilft ja GetActiveWindow anstelle von %getfocus!
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
07.02.2006  
 




Georg
Bernhardt
Jawoll Du hast recht

Georg
 
XProfan 10
07.02.2006  
 



Hallo Georg, Du machst das wohl gerne was?

Ich rede vom Weglassen der [CODE]-Tags.

Mach mal bitte gerne CodeTags.
 
07.02.2006  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

6.762 Betrachtungen

Unbenanntvor 0 min.
Erasmus.Herold20.11.2018
H.Hackl05.03.2012
Heiko Dix25.01.2011

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie