• Moin,
    Habe eine kleine Uhr gebastelt. Sie wird auf dem Hauptbildschirm angezeigt, sobald der Mauszeiger eine y Koordinate von 0 hat (als ganz oben). Konnte leider nicht testen ob sie korrekt von 23:59:59 auf 00:00:00 umschaltet (hab immer den Zeitpunkt verpennt). Die CPU Last ist im Leerlauf extrem gering (weil nicht gezeichnet wird) und beim Anzeigen auch human (bei mir ca. 2%). 100% GDI+, keine GDI/ASM Zauberei :)

    Kritik und Verbesserungsvorschläge sind gerne gesehen :)

    Edit (02.04.2015):
    - Es wird WS_ES_TOOLWINDOW benutzt (wollte ich ursürünglich tun, habe es aber vergessen. Danke für die Erinnerung)
    - Farbeinstellungen erweitert und insgesamt besser kommentiert.
    - Kleine Zusammenfassungen sodass der Code kürzer ist.

    Spoiler anzeigen


    lg
    M

  • Gut gemacht! :thumbup:

  • Sehr schick, ich würde allerdings den Maus-Bereich verkleinern.
    Aber um das zutun fehlen mir die Kentnisse; Was passiert in folgender Zeile, und wo für stehen die Fragezeichen und Doppelpunkte?:

    [autoit]


    $iOffset = $aPos[1] = 0 ? $iOffset / 1.5 : ($iOffset + 1) * 1.5 > $iH ? $iH : ($iOffset + 1) * 1.5

    [/autoit]
    Spoiler anzeigen

    Überraschung!


    MfG Donkey

  • Ist im Prinzip ganz einfach. Die ? und : sind eine zusammengefasste If Abfrage mit Zuweisung. $a = (Ausdruck) ? True : False.
    Was meinst du mit Mausbereich einschränken ? In y Richtung ? (sodass nur in einem bestimmten Bereich des Bildschirms z.B. in der Mitte die Uhr auftaucht ?)

    Edit:
    Der Codeausschnitt ist genau der Richtige. Ist auch sehr einfach zu verstehen. Ganz vorne steht die Bedingung für das Ausfahren der Uhr ($aPos[1] = 0 -> Maus ganz oben). Da kann man selbstverständlich eine Einfache Abstandsabfrage zur Bildschirmmitte (in y Richtung) einbauen ohne an der Uhr selbst irgendwas verändern zu müssen.

    [autoit]

    $iOffset = ($aPos[1] = 0 And Abs(@DesktopWidth/2 - $aPos[0]) < $iW/2) ? $iOffset / 1.5 : ($iOffset + 1) * 1.5 > $iH ? $iH : ($iOffset + 1) * 1.5

    [/autoit]

    lg
    M

  • Was ich meinte, ist dass man den Bereich, in den man mit der Maus geht, um die Uhr anzuzeigen, verkleinern sollte.
    z.B. auf die Mitte (man könnte dort auch dauerhaft einen kleinen halb transparenten Strich/GUI anzeigen lassen, damit man den Bereich sieht.)

    Spoiler anzeigen

    Überraschung!


    MfG Donkey

  • Genau diese Verkleinerung ist durch Abs(@DesktopWidth/2 - $aPos[0]) < $iW/2) gegeben.
    Wenn du den Codeausschnitt gegen den von mir geposteten austauschst wird die Uhr nur angezeigt wenn die Maus direkt davor ist. Will man den Ausschnitt verändern muss man am /2 herumspielen und z.B. ein /1.5 daraus machen -> Größerer Ausschnitt, /2.5 -> kleinerer Ausschnitt.

    lg
    M