Frage zu SplashTextOn und "Pause-Funktion"

  • Hallo zusammen,

    hab mal wieder einige Fragen.

    1. Frage:

    Als erstes nutze ich in einem Script "SplashTextOn", weil das einfacher ist, als selber ein GUI zu basteln.
    Jetzt meine Frage, kann man da irgendwie andere Farben auswählen (Hintergrund und Text)?
    Mit den Gui-Color-Funktionen bewirke ich anscheinend keine Änderung.

    2. Frage:

    Ich würde gerne, dass man mein Script pausieren kann, das ganze über das Traymenü. Das geht ja standardmäßig
    bei alles Scripten, ich habe jedoch ein eigenes Tray-Menü erstellt und müsste da jetzt diese Pause-Funktion manuell
    erstellen. Aber wie mache ich das?

  • Zum Pausieren:

    [autoit]

    Global $exitloop

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

    ;Programmschleife

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

    Func _Pause()
    $exitloop = 0
    Do
    Sleep(1000)
    Until $exitloop = 1
    EndFunc ;==> _Pause()

    [/autoit]

    Und dann einfach per Buttonklick, exitloop = 1 setzen.

    P.S. Ungetestet :whistling:

  • Schau dir doch die Hilfe an, vielleicht kannst du dir daraus was basteln. :)

    Hier das Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>
    #NoTrayIcon

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

    Opt("TrayOnEventMode",1)
    Opt("TrayMenuMode",1) ; Standard Traymenüeinträge (Script pausieren/beenden) werden nicht angezeigt.

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

    $exit = TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1,"ExitEvent")

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

    TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE,"SpecialEvent")
    TraySetOnEvent($TRAY_EVENT_SECONDARYUP,"SpecialEvent")

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

    TraySetState()

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

    While 1
    Sleep(10) ; CPU-Last verhindern
    WEnd

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

    Exit

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

    ; Functions
    Func SpecialEvent()
    Select
    Case @TRAY_ID = $TRAY_EVENT_PRIMARYDOUBLE
    Msgbox(64,"SpecialEvent-Info","Erster Mausbutton wurde doppelgeklickt.")
    Case @TRAY_ID = $TRAY_EVENT_SECONDARYUP
    Msgbox(64,"SpecialEvent-Info","Zweiter Mausbutton wurde geklickt.")
    EndSelect
    EndFunc

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

    Func ExitEvent()
    Exit
    EndFunc

    [/autoit]
  • hmm, irgendwie komme ich nicht weiter ...

    aber immerhin bin ich dadruch wieder auf ne idee gekommen.
    ich kann ja ;~ Opt("TrayMenuMode", 1) aus meinem script entfernen,
    dann habe ich pause und exit standardmäßig durch autoit im traymenü.

    ABER jetzt pausiert das script natürlich direkt, wenn man nur das icon
    anklickt. wie kann man das abstellen? das script soll nur pausieren, wenn
    man das aus dem tray-menü anwählt?

  • ah, habs ...was es nicht alles gibt +g*

    Opt("TrayAutoPause",0) bewirkt genau das.

    so, jetzt ist noch die frage zu SplashTextOn offen, ob man da Farben verändern kann ;)

    bzw hätte noch ne Frage, wie kann ich folgendes pausieren?

    [autoit]

    Do
    $diff = TimerDiff($begin)
    ControlSetText($handle, "", "[CLASS:Static; INSTANCE:1]", StringFormat($head & @CRLF & "at: " & $H & ":" & $M & @CRLF & "in: " & Round(($Countdown * 1000 - $diff) / 1000) & " seconds"))
    Sleep(100)
    Until $diff >= $Countdown * 1000

    [/autoit]

    hab quasi nen timer laufen ... drücke ich nun auf pause, bleibt die anzeige stehen, drücke ich fortführen, springt der timer weiter ... hat also während der pause weiter getimert ;)

    ich hoffe ihr versteht was ich meine ;)

  • Ich würde einfach eine Variable deklarieren, und wenn diese zutrifft, dann soll er ControlSetText machen...

    Ein ähnliches Beispiel hat unsere Admin Biene gemacht: Link :D