Desktop reservieren bei zwei Monitoren

  • Hallo zusammen, mit folgendem Code kann ich bestimmten Platz auf meinem Desktop für meine GUI Taskleiste reservieren. Jedoch wird hier immer vom Hauptmonitor ausgegangen. Hat evtl. jemand eine Idee, wie ich diesen Code auf mein zweiten Monitor anwenden kann?

    Spoiler anzeigen
    AutoIt
    Const $SPI_SETWORKAREA = 47
    Const $SPIF_SENDCHANGE
    
    
    $tRECT = DllStructCreate('int;int;int;int')
    DllStructSetData($tRECT, 1, 0) ; left
    DllStructSetData($tRECT, 2, 40) ; top
    DllStructSetData($tRECT, 3, @DesktopWidth) ; right
    DllStructSetData($tRECT, 4, @DesktopHeight -  40) ; buttom
    _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tRECT), $SPIF_SENDCHANGE)
    • Offizieller Beitrag

    Hallo,

    evtl. mal so probieren.

    Wenn das nicht geht, muss man wahrscheinlich mit der Funktion GetMonitorInfo erstmal den Bereich des 2. Montiors auslesen und dann setzten.

  • Hallo zusammen, mit folgendem Code kann ich bestimmten Platz auf meinem Desktop für meine GUI Taskleiste reservieren.

    Kannst du mir davon vll. mal n Screen zukommen lassen, sofern du fertig bist. Würde mir mal gern anschauen, wie du das nutzt. Es scheint ja keine Standard-Taskbar zu sein, oder? Klingt interessant...

    Grüße Yaerox

    Grüne Hölle

  • Kannst du mir davon vll. mal n Screen zukommen lassen, sofern du fertig bist. Würde mir mal gern anschauen, wie du das nutzt. Es scheint ja keine Standard-Taskbar zu sein, oder? Klingt interessant...

    Tatsächlich gibt es noch nicht viel zusehen, wie du auf den Bildern siehst, reserviert sich das Script oben den Platz, sodass Icons & Maximierte Fenster sich nun an diese Größe halten.

  • OK kurzes Update meinerseits,

    laut MSDN muss ich bei multiblen Monitoren die Funktion "GetMonitorInfo" aufrufen, zum Glück gibt es hier bereits was von AutoIt _WinAPI_GetMonitorInfo($hMonitor).

    So nun habe ich keine Ahnung wie ich anhand dieser Informationen eine Struct erstelle, sodass ich die Workarea vom zweiten Bildschirm anspreche.

  • Ok nun hab ich es raus.

    @bernd670 du hattest von Anfang an recht, leider habe ich das nicht von Anfang an verstanden.

    Mir hat im Struct immer die Zuweisung der Monitore gefehlt, jedoch ist dies garnicht notwendig, denn Windows macht das ganz von alleine. Anhand der X,Y Kordinaten ermittelt Windows, welche Workarea gemeint ist und wendet dort die SPI_SetWorkarea an.

    So sieht dann der Code aus :D