![]() |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Wenn ich unter XP einen Screenshot mache, ist meine Lupe darauf nicht zu sehen. Bei Overlayvideos sieht man nur die schwarze Zeichenfläche. Wie ist es bei Aero? Was wird dort nicht vom Screenshot erfasst?
![]() ![]() ![]() |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Was zum Lesen:
![]() ![]() ![]() ![]() ![]() ![]() ![]() Edit: Link-Tag gesetzt. |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
[edit="tP"] removed [/edit]
|
Re: Bildschirmlupe - Bereich unter Formular ermitteln
|
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Ist ja auf einmal so ruhig hier.
Im Prinzip könnte die Miniaturansicht in Frage kommen. ![]() |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Unter Vista währe es vllt möglich, die neue Thumbnail der DWM Api zu nutzen!
Es ist bestimmt möglich selbiges zu vergrößern, und dann auf die Form zu zeichnen! Hat natürlich das Problem, das es dann unter Xp nicht mehr läuft. Auch weiß ich nicht ob man alle Fenster auf dem Thumbnail azeigen lassen kann, da es normalerweise ja nur für ein Fenster gedacht ist. |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Zitat:
Zitat:
![]() Zitat:
|
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Das Beispiel von
![]()
Code:
Sieht so aus, als könnte es funktionieren:
HRESULT hr = S_OK;
//Register Thumbnail HTHUMBNAIL thumbnail = NULL; hr = DwmRegisterThumbnail(hwnd, FindWindow(_T("Progman"), NULL), &thumbnail); if (SUCCEEDED(hr)) { //destination rectangle size RECT dest = {0,50,100,150}; //Set thumbnail properties for use DWM_THUMBNAIL_PROPERTIES dskThumbProps; dskThumbProps.dwFlags = DWM_TNP_RECTDESTINATION | DWM_TNP_VISIBLE | DWM_TNP_SOURCECLIENTAREAONLY; //use window frame and client area dskThumbProps.fSourceClientAreaOnly = FALSE; dskThumbProps.fVisible = TRUE; dskThumbProps.opacity = (255 * 70)/100; dskThumbProps.rcDestination = dest; //display the thumbnail hr = DwmUpdateThumbnailProperties(thumbnail,&dskThumbProps); if (SUCCEEDED(hr)) { //do more things } } return hr; ![]()
Code:
DWM_THUMBNAIL_PROPERTIES Structure
Specifies Desktop Window Manager (DWM) thumbnail properties. Syntax typedef struct _DWM_THUMBNAIL_PROPERTIES { DWORD dwFlags; RECT rcDestination; RECT rcSource; BYTE opacity; BOOL fVisible; BOOL fSourceClientAreaOnly; } DWM_THUMBNAIL_PROPERTIES, *PDWM_THUMBNAIL_PROPERTIES; Members dwFlags A bitwise combination of DWM Thumbnail Constants values indicating which members are set. rcDestination The rectangle in the destination window the thumbnail will be rendered. rcSource The rectangle specifying the region of the source window to use as the thumbnail. The default is to use the entire window as the thumbnail. opacity The opacity with which to render the thumbnail. 0 is fully transparent while 255 is fully opaque. The default value is 255. fVisible TRUE to make the thumbnail visible; FALSE to make the thumbnail invisible. The default is FALSE. fSourceClientAreaOnly TRUE to only use the thumbnail source's client area; otherwise, FALSE; The default is FALSE. ![]() ![]() ![]() Ein C# Beispiel mit Source: ![]() Etwas in Delphi: ![]() |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Zitat:
|
Re: Bildschirmlupe - Bereich unter Formular ermitteln
|
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo
Vielleicht hilft Dir dieses Beispiel weiter (mit exe-Datei). Gruss |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo FussballRobbie
Hab noch ein Beispiel für Dich. Gruss |
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Dein Engagement in allen Ehren, aber deine Beispiele verfehlen leider die Fragestellung. Außerdem ist der Thread schon so alt, dass sich das Problem wahrscheinlich mittlerweile erübrigt hat.
|
Re: Bildschirmlupe - Bereich unter Formular ermitteln
Zitat:
|
Re: Bildschirmlupe - Bereich unter Formular ermitteln
im Grunde müßte man sich doch "nur" ein Canvas nehmen und die gewünschten Fenster sich darauf zeichnen lassen? :gruebel:
zeichnet de ClientBereich einer Form in ein Canvas (muß keine Delphi-Form sein ... an ein Form-/Control-Handle kommt man ja überall ran)
Delphi-Quellcode:
[edit]
StretchBlt(Image1.Canvas.Handle, 0, 0, Form1.Width, Form1.Height,
GetDC(Form1.Handle), 0, 0, Form1.Width, Form1.Height, SRCCOPY); grad probiert, zeichnet doch nur sichtbare Teile :gruebel: :? [add] kann man sich nicht so (virtuelle) Desktops erstellen? - einen erstellen - Form da rüberverschieben - Fotos des Desktops machen - zurückverschieben - fertig |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:45 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