"Duplizieren" Modus

  • Hallo,

    kann man folgendes automatisieren mit AutoIT?

    In der Einstellung: Bildschirmauflösung von "Desktop nur auf 1 anzeigen" in "Diese Anzeige duplizieren" und umgekehrt. Die Auflösung soll gleich bleiben!

    Habe schon die Soundeinstellung soweit gemacht aber des fehlt noch.

    Danke im voraus

    grüße

    Einmal editiert, zuletzt von steffenw (21. Dezember 2013 um 12:48)

  • Das kann man bestimmt irgendwo in der Registry steuern. Frage doch mal Google...

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Hier:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 235, 66, 192, 124)
    $button1 = GUICtrlCreateButton("Hauptbildschirm", 16, 24, 91, 25)
    $button2 = GUICtrlCreateButton("Bildschirm erweitern", 112, 24, 107, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $button1
    Run(@windowsDir & "\System32\DisplaySwitch.exe /internal")
    case $button2
    Run(@windowsDir & "\System32\DisplaySwitch.exe /extend")
    EndSwitch
    WEnd

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • danke schonmal..

    aber da wird dann der bildschirm erweitert, nicht dupliziert. und geht das nicht das der button automatisch ausgewählt wird, das ich dann 2 verscheidene dateien habe einmal mit Hauptbildschirm und 1 mal mit duplizieren

    • Offizieller Beitrag

    Schon mal was von Google gehört?
    Den Passenden Befehl Displayswitch.exe hast du doch und wenn man bei Google sucht bekommt man dann sowas:

    Zitat von microsoft

    Displayswitch.exe also has command line parameters that allow you to create a shortcut that will set a specific display mode.

    /internal

    /clone

    /extend

    /external


    Einfach mal die anderen Parameter ausprobieren ;)

  • Meine persönliche Lsg.:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $MoSwi = GUICreate("Monitorsteuerung", 493, 41, 5, 5)
    $Mo2plus = GUICtrlCreateButton("Monitor 2 zuschalten", 8, 8, 115, 25)
    $Mo2minus = GUICtrlCreateButton("Monitor 2 abschalten", 127, 8, 115, 25)
    $Mo1und2 = GUICtrlCreateButton("nur 2. Monitor", 248, 8, 115, 25)
    $Mo2clonMo1 = GUICtrlCreateButton("Monitorcloning", 368, 8, 115, 25)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Mo2plus
    run("C:\Windows\System32\DisplaySwitch.exe /extend")
    Case $msg = $Mo2minus
    run("C:\Windows\System32\DisplaySwitch.exe /internal")
    Case $msg = $Mo1und2
    run("C:\Windows\System32\DisplaySwitch.exe /external")
    Case $msg = $Mo2clonMo1
    run("C:\Windows\System32\DisplaySwitch.exe /clone")
    EndSelect
    WEnd

    [/autoit]

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Du kannst mit While Sleep(50) statt While 1 noch deutlich die CPU Last reduzieren. Ist ja nur ein Assistent-Programm ;)


    Sollte man das wirklich machen? Denn in der Hilfe zu Autoit steht:

    Zitat von Hilfe

    Normalerweise würde so eine Schleife die CPU zu 100% auslasten - glücklicherweise lässt die GUIGetMsg Funktion die CPU automatisch im Leerlauf laufen solange keine Ereignisse warten. Schreibe keinen Sleep-Befehl in die Schleife aus Angst, die CPU auszulasten - das wird nur dazu führen, dass die GUI nicht mehr auf den Nutzer reagiert.

    MfG Xenon

  • Die GUI wird nur inreaktiv bei Sleepzeiten über 50. Bei Multi-Core Prozessoren macht das sowieso nicht viel aus (Beispiel i5 mit 4 Kernen: Bei AutoIt in Volllast maximal 25% Last).

    Mit Sleep geht man immer auf Nummer sicher. Für komplexe Programme (oder Programme mit Grafik) empfiehlt sich in jedem Fall der OnEvent Modus. Zumal die Regulierung durch einen Messageloop nur greift, wenn die Maus nicht in der betreffenden GUI ist. Bewegt sie sich in dieser, wird die Aktualisierungsgeschwindigkeit inkonsistent.

    Für dieses Programm verhält es sich so: Ist der Assistent nicht im Vordergrund / ist die Maus nicht in der GUI ist die CPU Last minimal. Betätigt der Nutzer den Assistenten, dann wird die CPU unnötig ausgelastet. Mit Sleep bleibt die Auslastung immer niedrig.