Fensterpositionen automatisch an Monitorauflösung anpassen

  • hab mir ein kleines skript geschrieben um über den touch über nicht sichtbaren buttons/fenster die immer um vordergrund liegen das jeweilig laufende programm zu beenden und ein anderes zu starten

    funktioniert dann so

    click button1

    click button2

    hold shift+click button3

    laufendes programm wird beendet

    anderes wird gestartet

    sleep 150 sek

    programm wird beendet

    anderes programm wird gestartet

    die buttons sollten jeweils im linken oberen, rechten oberen, und rechten unteren eck des bildschirm liegen

    soweit so gut für meine auflösung am laptob angepasst...

    nur soll das ganze auf verschiedenen terminals laufen die alle irgednwie andere auflösungen haben

    mal 1440x900 mal mit 1024x768 mal 2048x1024 usw

    gibts jetzt ne möglichkeit die auflösung automatisch aus zu lesen und das skript bzw die positionen der fenster mit den buttons automatisch an zu passen

    so das wäre mal der ursprüngliche code...

    die check config exe beendet dieses script und startet es nach einer gewissen zeit wieder neu

    im prinzip gehts darum diese 2 zeilen automatisch an die bildschirmauflösung an zu passen

    denn der erste button passt ja eigentlich immer

    damit die positionen immer stimmen bzw die buttons immer im eck oben rechts und unten rechts liegen

    Code
    Local $hGUI2 = GUICreate("Gui 2", 85, 65, 1293, -25, 0, 0) ;window rigth top
    
    Local $hGUI3 = GUICreate("Gui 3", 85, 65, 1293, 700, 0, 0) ;window rigth down
  • Hallo kangool

    Du kannst die z.B. die Makros @DesktopWidth und @DesktopHeight benutzen um die Auflösung auszulesen und dann deine GUI dimensionieren und Controls positionieren (@DesktopWidth - 10 usw.).

    Grüße autoiter

  • danke für den tipp

    sieht jetzt so aus und funktioniert

    Code
    Func gui1()
        Local $hGUI1 = GUICreate("Gui 1", 117, 64, @DesktopWidth, @DesktopHeight, 0, 0) ;window left top
        Local $idButton2 = GUICtrlCreateButton("",0,0,117,64)
        $aWin = WinGetPos($hGUI1)
    WinMove($hGUI1, "", @DesktopWidth - $aWin[0] - 40 , @DesktopHeight - $aWin[1] - 25)
            WinSetTrans( $hGUI1, '', 255 ) ; set transparent to 1 for invisible
            WinSetOnTop("Gui 1", '', 1) ; set window always on top
            GUISetState(@SW_SHOW)
        GUISetState()