Infobereichsymbole // Notification Area Icons

  • Hallo Zusammen,

    folgendes Problem. Ein Kollege hat das Problem das auf seinem Laptop per Policy immer alle Symbole angezeigt werden. Er hat Adminrechte und darf dies auch ändern. Ich habe ihm deshalb zu meinen Anfangszeiten von Autoit ein kleines Tool geschrieben.

    Spoiler anzeigen
    [autoit]


    run("control /name microsoft.notificationareaicons") ; Befehl für Notificationfenster
    ;winwait("Infobereichsymbole") ; warten bis das Fenster offen ist
    winwait("Notification Area Icons") ; warten bis das Fenster offen ist
    send("+{TAB}") ;send Shift+TAB
    send("{SPACE}") ; send Leertaste
    send("{ENTER}") ; send Enter

    [/autoit]

    Jetzt ist aber das Problem, das ja nicht immer die Policy geladen wird und dann mein Tool die Symbole wieder einblendet(weil ich mit LEERTASTE toggle)

    Ich würde das ganze jetzt gerne so machen, das es wie in einer selbstgebauten GUI die Möglichkeit gibt "CHECKED" oder "UNCHECKED" zu sagen. Und das ganze sollte mit @SW_HIDE laufen.

    Ich habe bereits mit "ControlSend" probiert das zu beeinflussen, allerdings reagiert das Fenster darauf nicht

    [autoit]


    ControlSend("Notification Area Icons", "", "[CLASSNN:Button3]", "+{TAB}")

    [/autoit]

    Mir fehlt irgendwie ein Wink mit dem Zaunpfahl^^

    Grüsse

    AyKay

    Einmal editiert, zuletzt von AyKay (7. August 2013 um 07:43)

  • Das war nur ein Beispiel. Ich habs auch damit probiert

    [autoit]

    ControlSend("Notification Area Icons", "", "Button3", "{+}")

    [/autoit]

    Allerdings will es auf teufel komm raus das ControlSend nicht machen.

  • [autoit]

    WinActivate("Systemsteuerung\Alle Systemsteuerungselemente\Infobereichsymbole")
    $a = ControlCommand("Systemsteuerung\Alle Systemsteuerungselemente\Infobereichsymbole", "","Button3", "IsChecked", "")
    ConsoleWrite("$a = " & $a & @CRLF); Wenn angehakt dann 1, ansonsten 0

    [/autoit]


    Wenn Du den Status in einer Schleife abfrägst, kannst Du ja dementsprechend darauf reagieren

  • Ok, die Logik muss ich jetzt nicht kapieren. Wieso funktioniert es wenn ich "ControlCommand" verwende, aber mit ControlSend nicht?

    Ich habe jetzt folgendes funktionierendes Ergebnis.

    [autoit]


    run("control /name microsoft.notificationareaicons") ; Befehl für Notificationfenster
    sleep(1000)
    ControlCommand("Notification Area Icons", " ","Button3", "UnCheck", "")
    ControlClick("Notification Area Icons", "OK", "Button1")

    [/autoit]

    Allerdings klappt es mit @SW_HIDE leider nicht (kleineres übel).

    Trotz allem vielen dank!