Hauptanzeige ändern

  • Hallo an alle,

    bei mir im Betrieb gibt es einen Arbeitsplatz mit sieben Monitoren, sechs sind riesige LED TV's einer ist ein Desktopmonitor, an dem quaisie aktiv gearbeitet wird....leider ist dieser (warum auch immer) nicht der Hauptbildschirm.

    Ist es machbar, die Hauptanzeige temporär via autoit zu ändern, danach mein script durchlaufen lassen und am ende wieder die alte hauptanzeige einzustellen?

    problem ist, dass sich die aufgerufenen Fenster/Programme immer im Hauptbildschirm öffnen, was für meine zwecke unschön ist (da ich leider mit Mousemove arbeiten muss, da ich in einem SunAwtFrame unterwegs bin, wo ich einige Prozeduren starten möchte, diese aber halt nur mit Mousemove/Mouseclick erreiche)

    Würde mich über eine Antwort freuen

    Lieben Gruß

    Tommii

  • Du kannst doch Fenster direkt auf Monitor X öffnen lassen ohne die Hauptanzeige zu ändern (und somit mit ggf. anderen Anzeigen in die Quere zu kommen).

    Am Start des Programms das eigne Handle und die Monitornummer an folgende Funktion übergeben:

    Dann wäre das Fenster Zentriert auf dem jeweiligen Monitor.

    Einmal editiert, zuletzt von Moombas (2. November 2021 um 13:35) aus folgendem Grund: Habe die Hilfsfunktion vergessen mit zu geben.

  • Ist es machbar, die Hauptanzeige temporär via autoit zu ändern, danach mein script durchlaufen lassen und am ende wieder die alte hauptanzeige einzustellen?

    Ja, das ist machbar... dazu muss man die Funktion ChangeDisplaySettingsEx via DllCall aufrufen und kann so den primären Monitor ändern. Bevor dein Script beendet wird, dann einfach noch mal die Funktion aufrufen und den primären Monitor wieder zurücksetzen.

    Kann dir bei der Umsetzung aber frühestens am WE weiterhelfen.

  • Übrigens... es gibt auch noch eine andere sehr empfehlenswerte Option... so mache ich es... mit DisplayFusion kannst du endlos viele Einstellungen für Multi-Monitor-Betrieb sehr komfortabel automatisieren - z.B. wo welches Fenster in welcher Größe auf welchem Monitor angezeigt werden soll... und noch 100.000 Sachen mehr. Einziger Nachteil ist, es kostet was... aber das Tool ist jeden Cent wert und für mich mittlerweile quasi unverzichtbar!

  • Du kannst doch Fenster direkt auf Monitor X öffnen lassen ohne die Hauptanzeige zu ändern (und somit mit ggf. anderen Anzeigen in die Quere zu kommen).

    Am Start des Programms das eigne Handle und die Monitornummer an folgende Funktion übergeben:

    Dann wäre das Fenster Zentriert auf dem jeweiligen Monitor.


    leider bekomme ich folgenden fehler, wenn ich das so in eine testdatei einfüge und ausführen will

    "X:\My Documents\Autoit\Autostarttool\tests\monitore auslesen.au3" (122) : ==> Variable used without being declared.:

    _CenterOnMonitor($hOwnHandle, $Monitornumber)

    _CenterOnMonitor(^ ERROR

  • Ja klar XD

    Du musst ja auch $hOwnHandle mit dem Handle deines Fensters versehen das auf den entsprechenden Monitor gepackt werden soll, das war nur ein Platzhalter.

    Gleiches gilt für $Monitornumber dort trägst du die Monitornummer ein, wo das Fenster hin soll.

  • Ja klar XD

    Du musst ja auch $hOwnHandle mit dem Handle deines Fensters versehen das auf den entsprechenden Monitor gepackt werden soll, das war nur ein Platzhalter.

    Gleiches gilt für $Monitornumber dort trägst du die Monitornummer ein, wo das Fenster hin soll.

    autsch...ich doof, ich teste das, danke :)