Kalender im Tray abfangen

  • Hallo,

    ich habe irgendwie eine Denksperre.

    ich will überprüfen ob auf Datum/Uhrzeit in der Trayleiste geklickt wird und das dann abfangen. Ich möchte das dann eine Fenster mit einem Autoit KalenderObject aufgeht und nicht die Datums und Zeiteinstellung von XP.

    Hab überlegt ob das mit IfPressed geht, aber das war wohl der falsche Ansatz.

    Also
    Jedesmal wenn die linke Maustaste gecklickt wird müßte man überprüfen ob hier gedrückt wurde:

    >>>>>>>>>>> Control Under Mouse <<<<<<<<<<<
    Control ID: 303
    ClassNameNN: TrayClockWClass1
    >>>>>>>>>>> Control Under Mouse <<<<<<<<<<<

    Das ganze soll permanent laufen und darf die CPU nicht belasten.

    Wie würdet Ihr das machen ?

    Gruß
    Wolke

    Einmal editiert, zuletzt von wolkenloser (21. Juli 2007 um 10:47)

  • Hi
    das Fenster soll ja gar nicht erst aufgehen....

    Also wenn auf die Uhrzeit doppelt geklickt wird soll dieser klick abgefangen werden und ich will etwas anderes mit Autoi machen, z.B. eine Funktion ausführen.....

    Alsodas Fenster "Eigenschaften von Datum und Uhrzeit" soll gar nicht erst aufgehen

    Gruß
    Wolke

  • Ein Ansatz wäre vielleicht dies:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $leistepos = WinGetPos("[CLASS:Shell_TrayWnd]")
    $uhrpos = ControlGetPos("[CLASS:Shell_TrayWnd]", "", "[CLASS:TrayClockWClass]")
    $uhrpos[0] += $leistepos[0]
    $uhrpos[1] += $leistepos[1]
    Dim $overlay = GUICreate("Uhr Overlay", $uhrpos[2], $uhrpos[3]-30, $uhrpos[0], $uhrpos[1]+30, $WS_POPUP, $WS_EX_TOPMOST+$WS_EX_TRANSPARENT)
    Dim $overlay2 = GUICtrlCreateLabel("", 0, 0, $uhrpos[2], $uhrpos[3], -1, $WS_EX_TRANSPARENT)

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

    GUICtrlSetOnEvent($overlay2, "UhrAbfangen")

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

    GUISetState(@SW_SHOWNOACTIVATE, $overlay)

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

    While 1
    Sleep(1000)
    WEnd

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

    Func UhrAbfangen()
    MsgBox(16, "Info", "Uhr wurde geblockt!")
    EndFunc

    [/autoit]

    ist aber auf jedenfall noch Verbesserungswürdig... Der graue Kasten verschwindet übrigens sobald sich die Uhr zur nächsten vollen Minute aktualisiert...

    Einmal editiert, zuletzt von jans16 (23. Juli 2007 um 10:29)