Splashtext und Hotkey

  • Moin moin,
    ich habe ein Hotkey mit zwei Splashtext belegt: 1. Druck: "Text A", 2. Druck: "Text B", 3. Druck "Text A", 4. Druck "Text B" usw.
    Funktioniert auch fast

    [autoit]

    Func HotKey_Ende()
    If Mod($hotkey_ende, 2) = 0 Then
    SplashTextOn("Ausschalten", "Rechner wird anschließend heruntergefahren", 110, 70, Default, Default, 1, "", 9)
    Else
    SplashTextOn("Programm Beenden", "Rechner bleibt anschließend im Betrieb", 110, 70, Default, Default, 1, "", 9)
    EndIf
    Sleep(2000)
    SplashOff()
    $hotkey_ende += 1

    [/autoit]


    bzw. alternativ


    [autoit]

    Func HotKey_Ende()
    If Mod($hotkey_ende, 2) = 0 Then
    SplashTextOn("Ausschalten", "Rechner wird anschließend heruntergefahren", 110, 70, Default, Default, 1, "", 9)
    Else
    SplashTextOn("Programm Beenden", "Rechner bleibt anschließend im Betrieb", 110, 70, Default, Default, 1, "", 9)
    EndIf
    Sleep(2000)
    SplashOff()
    $hotkey_ende += 1
    EndFunc

    [/autoit]


    Nur ändert sich die Anzeige während des Slp(2) nicht, aber der Tastendruck wird registriert. Wie könnte man zur gleichen Zeit den Text ändern? Habs ne Stunde mit allerlei Schleifen probiert, klappt bei mir irgendwie nicht ?(

    Einmal editiert, zuletzt von mille86 (18. Oktober 2009 um 09:08)

  • Hallo mille86,

    hier das Skript:

    [autoit]

    Global $hotkey_ende
    HotKeySet("{ESC}", "HotKey_Ende")
    While 1
    Sleep(125)
    WEnd

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

    Func HotKey_Ende()
    if $hotkey_ende> 0 then SplashOff()
    If Mod($hotkey_ende, 2) = 0 Then
    SplashTextOn("Ausschalten", "Rechner wird anschließend heruntergefahren", 110, 70, Default, Default, 1, "", 9)
    Else
    SplashTextOn("Programm Beenden", "Rechner bleibt anschließend im Betrieb", 110, 70, Default, Default, 1, "", 9)
    EndIf
    ; Sleep(2000)
    ; SplashOff()
    $hotkey_ende += 1
    EndFunc ;==>HotKey_Ende

    [/autoit]

    viel Spaß damit ;) ,

    mfg (Auto)Bert

  • [autoit]


    hotkeyset("{ESC}","hotkey_ende")
    global $hotkey_ende=0

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

    while 1
    wend

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

    Func HotKey_Ende()
    If bitnot($hotkey_ende) = 0 Then
    SplashTextOn("Ausschalten", "Rechner wird anschließend heruntergefahren", 110, 70, Default, Default, 1, "", 9)
    Else
    SplashTextOn("Programm Beenden", "Rechner bleibt anschließend im Betrieb", 110, 70, Default, Default, 1, "", 9)
    EndIf
    Sleep(2000)
    SplashOff()
    $hotkey_ende=bitnot($hotkey_ende) ;0, -1, 0, -1, 0, -1....
    EndFunc

    [/autoit]

    /*EDIT*/ vieeeel zu langsam^^, ich sollte mir abgewöhnen, zwischen dem Schreiben der Antwort und dem Abschicken Kaffee zu kochen :rofl:

  • Hi,
    danke für die Antworten, aber leider funktionieren beide Beispiele nicht:
    Im ersten Beispiel bleibt der Splashtext dauerhaft, statt nach 2 Sek. zu verschwinden und das 2. Beispiel ist im Verhalten meinem Code identisch.
    Ich knobel noch weiter

  • Hi,
    bei mir funktionieren beide Beispiele......ggf solltest du genauer beschreiben, was das Script eigentlich machen soll....

  • Hallo mille86,

    Zitat

    Im ersten Beispiel bleibt der Splashtext dauerhaft, statt nach 2 Sek. zu verschwinden

    mit adlib lässt sich auch dieses Problem lösen:

    Spoiler anzeigen
    [autoit]

    Global $hotkey_ende
    HotKeySet("{ESC}", "HotKey_Ende")

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

    While 1
    Sleep(125)
    WEnd

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

    Func HotKey_Ende()
    Local $time = TimerInit()
    if $hotkey_ende> 0 then SplashOff()
    If Mod($hotkey_ende, 2) = 0 Then
    SplashTextOn("Ausschalten", "Rechner wird anschließend heruntergefahren", 110, 70, Default, Default, 1, "", 9)
    Else
    SplashTextOn("Programm Beenden", "Rechner bleibt anschließend im Betrieb", 110, 70, Default, Default, 1, "", 9)
    EndIf
    $hotkey_ende += 1
    AdlibEnable('_SplashOFF',2000)
    EndFunc ;==>HotKey_Ende

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

    func _SplashOFF()
    SplashOff()
    AdlibDisable()
    EndFunc

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

    Func OnAutoItExit ( )
    HotKeySet("{Esc}")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • @ Autobert: Genau das was ich gesucht habe, danke =)
    EDIT: Ich habe an deinem Code bissel rumgespielt, es geht sogar dann ohne Adlib:

    Spoiler anzeigen
    [autoit]

    Func HotKey_Ende()
    If Mod($hotkey_ende, 2) = 0 Then
    SplashTextOn("Ausschalten", "Rechner wird anschließend heruntergefahren", 110, 70, Default, Default, 1, "", 9)
    Else
    SplashTextOn("Programm Beenden", "Rechner bleibt anschließend im Betrieb", 110, 70, Default, Default, 1, "", 9)
    EndIf
    $hotkey_ende += 1
    Sleep(2000)
    SplashOff()
    EndFunc

    [/autoit]


    Das nennt man Teamwork :D

    Einmal editiert, zuletzt von mille86 (18. Oktober 2009 um 09:07)