Stammtisch & le café | | | | |
Beschreibung:
GetWindowPlacement liest Informationen sur den augenblicklichen Status et sur qui voraussichtliche Fensterposition aus, si sich un la fenêtre dans einem certain Status est.
Deklaration:
DEF @GetWindowPlacement(2) !USER32,GetWindowPlacement
paramètre:
1.paramètre: WINDOWPLACEMENT Struktur ou bien 44 Byte grand Bereichsvariable, qui Informationen sur den Status et qui voraussichtliche Fensterposition aus, si sich un la fenêtre dans einem certain Status est aufnimmt.=> -Byte 0-3 = Taille qui Bereichsvariablen dans Bytes -Byte 4-7 = Kombinationsflag pour qui Fenstererzeugung et Minimierung: $1 = (WPF_SETMINPOSITION) Fensterposition pour qui Minimierung ist festgelegt et steht dans Byte 12 jusqu'à Byte 19. $2 = (WPF_RESTORETOMAXIMIZED) la fenêtre wird chez qui Erzeugung toujours maximiert. -Byte 8-11 = un Statusflag.=> $1 = (SW_SHOWNORMAL) Normale Fenstergröße. $2 = (SW_SHOWMINIMIZED) Minimiert $3 = (SW_SHOWMAXIMIZED) Maximiert -Byte 12-15 = X-Koordinate,si la fenêtre minimiert ist. -Byte 16-19 = Y-Koordinate,si la fenêtre minimiert ist. -Byte 20-23 = X-Koordinate,si la fenêtre maximiert ist. -Byte 24-27 = Y-Koordinate,si la fenêtre maximiert ist. -Byte 28-31 = X-Koordinate dessus à gauche, si la fenêtre dans Normalzustand ist. -Byte 32-35 = Y-Koordinate dessus à gauche, si la fenêtre dans Normalzustand ist. -Byte 36-39 = X-Koordinate unten à droite, si la fenêtre dans Normalzustand ist. -Byte 40-43 = Y-Koordinate unten à droite, si la fenêtre dans Normalzustand ist.
Rückgabewert:
1 chez erfolgreichem Lecture, 0 chez faute.
Beispiele:
KompilierenMarqueSéparationDEF @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
la fenêtre Status Position vorausberechnen X Y Koordinaten minimiert maximiert Normalzustand normal
|
| | | | |
| | | | | | | |
|
répondreOptions du sujet | 1.321 Views |
Themeninformationencet Thema hat 2 participant: |