Regulars table & Café | | | | |
Description:
GetWindowPlacement reads Information over the augenblicklichen status and over The voraussichtliche Fensterposition from, if itself one Window in a given status befindet.
Deklaration:
DEF @GetWindowPlacement(2) !USER32,GetWindowPlacement
Parameter:
1.Parameter: WINDOWPLACEMENT Structure or 44 byte large Memory-Variable, The Information over the status and the voraussichtliche Fensterposition from, if itself one Window in a given status befindet aufnimmt.=> -byte 0-3 = Size the Memory-Variables in Bytes -byte 4-7 = Kombinationsflag for Fenstererzeugung and Minimierung: $1 = (WPF_SETMINPOSITION) Fensterposition for Minimierung is set and standing in byte 12 To byte 19. $2 = (WPF_RESTORETOMAXIMIZED) Window becomes with the Erzeugung always maximiert. -byte 8-11 = One Statusflag.=> $1 = (SW_SHOWNORMAL) normal Fenstergröße. $2 = (SW_SHOWMINIMIZED) minimizes $3 = (SW_SHOWMAXIMIZED) Maximiert -byte 12-15 = X-Koordinate,if Window minimizes is. -byte 16-19 = Y-Koordinate,if Window minimizes is. -byte 20-23 = X-Koordinate,if Window maximiert is. -byte 24-27 = Y-Koordinate,if Window maximiert is. -byte 28-31 = X-Koordinate supra left, if Window in Normalzustand is. -byte 32-35 = Y-Koordinate supra left, if Window in Normalzustand is. -byte 36-39 = X-Koordinate under right, if Window in Normalzustand is. -byte 40-43 = Y-Koordinate under right, if Window in Normalzustand is.
Return Value:
1 with erfolgreichem Reading, 0 with Error.
Examples:
CompileMarkSeparationDEF @GetWindowPlacement(2) !USER32,GetWindowPlacement
DEF @GetLastError(0) !KERNEL32,GetLastError
Declare NOTEPAD_HANDLE&,Statusinfos&,Fehler&,WINDOWPLACEMENT#,ActiveWindow&,SetState&,Show$
Windowstyle 31
Windowtitle Status und Positionsinformationen eines Fensters
Window 0,0-640,440
LET STATUSINFOS&=@CreateButton(%HWND,Statusinfos auslesen,20,100,200,30)
LET SetState&=@CreateButton(%HWND,Fensterstatus setzen,20,150,200,30)
CASE @FINDWINDOW(Unbenannt - Editor)=0 : @WINEXEC(NOTEPAD.EXE,1)
LET NOTEPAD_HANDLE&=@FINDWINDOW(Unbenannt - Editor)
@Showwindow(%HWND,2)
@Showwindow(%HWND,1)
While 0=0
LET ActiveWindow&=@GetActiveWindow()
Sleep 100
IF @Getfocus(STATUSINFOS&)
@SetActiveWindow(ActiveWindow&)
Clearlist
ADDSTRING Fensterhandle=+@STR$(NOTEPAD_HANDLE&)
DIM WINDOWPLACEMENT#,44
Clear WINDOWPLACEMENT#
Long WINDOWPLACEMENT#,0=44
ADDSTRING Letzter API-Fehler=+@STR$(@GetLastError())
LET FEHLER&=@GetWindowPlacement(NOTEPAD_HANDLE&,WINDOWPLACEMENT#)
ADDSTRING Rückgabe von GetWindowPlacement=+@STR$(Fehler&)
ADDSTRING Letzter API-Fehler=+@STR$(@GetLastError())
ADDSTRING Fenstererzeugungsflags=+@STR$(@LONG(WINDOWPLACEMENT#,4))
IF @LONG(WINDOWPLACEMENT#,4) | $2=@LONG(WINDOWPLACEMENT#,4)
ADDSTRING Fenster wird bei der Erzeugung immer maximiert
ElseIF @LONG(WINDOWPLACEMENT#,4) | $1=@LONG(WINDOWPLACEMENT#,4)
ADDSTRING Fensterposition für die Minimierung ist festgelegt
endif
ADDSTRING ShowCmd=+@STR$(@LONG(WINDOWPLACEMENT#,8))
IF @LONG(WINDOWPLACEMENT#,8)=$1
ADDSTRING Status=Normale Größe
ElseIF @LONG(WINDOWPLACEMENT#,8)=$0
ADDSTRING Status=Unsichtbar
ElseIF @LONG(WINDOWPLACEMENT#,8)=$2
ADDSTRING Status=Minimiert
ElseIF @LONG(WINDOWPLACEMENT#,8)=$3
ADDSTRING Status=Maximiert
ElseIF @LONG(WINDOWPLACEMENT#,8)=$4
ADDSTRING Status=Normale Größe
ElseIF @LONG(WINDOWPLACEMENT#,8)=$5
ADDSTRING Status=Letzte Fenstergröße
ElseIF @LONG(WINDOWPLACEMENT#,8)=$6
ADDSTRING Status=Minimiert
ElseIF @LONG(WINDOWPLACEMENT#,8)=$7
ADDSTRING Status=Minimiert
ElseIF @LONG(WINDOWPLACEMENT#,8)=$8
ADDSTRING Status=Normale Größe
ElseIF @LONG(WINDOWPLACEMENT#,8)=$9
ADDSTRING Status=Status=Normale Größe
Endif
ADDSTRING X-Koordinate,wenn Fenster minimiert ist=+@str$(@LONG(WINDOWPLACEMENT#,12))
ADDSTRING Y-Koordinate,wenn Fenster minimiert ist=+@str$(@LONG(WINDOWPLACEMENT#,16))
ADDSTRING X-Koordinate,wenn Fenster maximiert ist=+@str$(@LONG(WINDOWPLACEMENT#,20))
ADDSTRING Y-Koordinate,wenn Fenster maximiert ist=+@str$(@LONG(WINDOWPLACEMENT#,24))
ADDSTRING X-Koordinate oben links, wenn Fenster in Normalzustand ist=+@str$(@LONG(WINDOWPLACEMENT#,28))
ADDSTRING Y-Koordinate oben links, wenn Fenster in Normalzustand ist=+@str$(@LONG(WINDOWPLACEMENT#,32))
ADDSTRING X-Koordinate unten rechts, wenn Fenster in Normalzustand ist=+@str$(@LONG(WINDOWPLACEMENT#,36))
ADDSTRING Y-Koordinate unten rechts, wenn Fenster in Normalzustand ist=+@str$(@LONG(WINDOWPLACEMENT#,40))
Dispose WINDOWPLACEMENT#
@LISTBOX$(Status und Positionsinformat,1)
@SetFocus(ActiveWindow&)
Elseif @Getfocus(SetState&)
LET SHOW$=@INPUT$(Zahl von 0 bis 9 eingeben:,Fensterstatus setzen,1)
IF Show$<>
@Showwindow(NOTEPAD_HANDLE&,@VAL(Show$))
Clearlist
ADDSTRING Fensterhandle=+@STR$(NOTEPAD_HANDLE&)
DIM WINDOWPLACEMENT#,44
Long WINDOWPLACEMENT#,0=44
ADDSTRING Letzter API-Fehler=+@STR$(@GetLastError())
LET FEHLER&=@GetWindowPlacement(NOTEPAD_HANDLE&,WINDOWPLACEMENT#)
ADDSTRING Rückgabe von GetWindowPlacement=+@STR$(Fehler&)
ADDSTRING Letzter API-Fehler=+@STR$(@GetLastError())
ADDSTRING Fenstererzeugungsflags=+@STR$(@LONG(WINDOWPLACEMENT#,4))
IF @LONG(WINDOWPLACEMENT#,4) | $2=@LONG(WINDOWPLACEMENT#,4)
ADDSTRING Fenster wird bei der Erzeugung immer maximiert
ElseIF @LONG(WINDOWPLACEMENT#,4) | $1=@LONG(WINDOWPLACEMENT#,4)
ADDSTRING Fensterposition für die Minimierung ist festgelegt
endif
ADDSTRING ShowCmd=+@STR$(@LONG(WINDOWPLACEMENT#,8))
IF @LONG(WINDOWPLACEMENT#,8)=$1
ADDSTRING Status=Normale Größe
ElseIF @LONG(WINDOWPLACEMENT#,8)=$0
ADDSTRING Status=Unsichtbar
ElseIF @LONG(WINDOWPLACEMENT#,8)=$2
ADDSTRING Status=Minimiert
ElseIF @LONG(WINDOWPLACEMENT#,8)=$3
ADDSTRING Status=Maximiert
ElseIF @LONG(WINDOWPLACEMENT#,8)=$4
ADDSTRING Status=Normale Größe
ElseIF @LONG(WINDOWPLACEMENT#,8)=$5
ADDSTRING Status=Letzte Fenstergröße
ElseIF @LONG(WINDOWPLACEMENT#,8)=$6
ADDSTRING Status=Minimiert
ElseIF @LONG(WINDOWPLACEMENT#,8)=$7
ADDSTRING Status=Minimiert
ElseIF @LONG(WINDOWPLACEMENT#,8)=$8
ADDSTRING Status=Normale Größe
ElseIF @LONG(WINDOWPLACEMENT#,8)=$9
ADDSTRING Status=Status=Normale Größe
Endif
ADDSTRING X-Koordinate,wenn Fenster minimiert ist=+@str$(@LONG(WINDOWPLACEMENT#,12))
ADDSTRING Y-Koordinate,wenn Fenster minimiert ist=+@str$(@LONG(WINDOWPLACEMENT#,16))
ADDSTRING X-Koordinate,wenn Fenster maximiert ist=+@str$(@LONG(WINDOWPLACEMENT#,20))
ADDSTRING Y-Koordinate,wenn Fenster maximiert ist=+@str$(@LONG(WINDOWPLACEMENT#,24))
ADDSTRING X-Koordinate oben links, wenn Fenster in Normalzustand ist=+@str$(@LONG(WINDOWPLACEMENT#,28))
ADDSTRING Y-Koordinate oben links, wenn Fenster in Normalzustand ist=+@str$(@LONG(WINDOWPLACEMENT#,32))
ADDSTRING X-Koordinate unten rechts, wenn Fenster in Normalzustand ist=+@str$(@LONG(WINDOWPLACEMENT#,36))
ADDSTRING Y-Koordinate unten rechts, wenn Fenster in Normalzustand ist=+@str$(@LONG(WINDOWPLACEMENT#,40))
Dispose WINDOWPLACEMENT#
@LISTBOX$(Status und Positionsinformat,1)
@SetFocus(ActiveWindow&)
endif
ENDIF
Wend
Window status position vorausberechnen X Y Coordinates minimizes maximiert Normalzustand normal
|
| | | | |
| | | Einfache Ableitung to that GetWindowPlacement: Gegenstück to that XProfan-Showwindow CompileMarkSeparation |
| | | | |
|
AnswerThemeninformationenthis Topic has 2 subscriber: |