AdlibRegister mit sofortiger Ausführung der Funktion?

  • Hi,

    Wenn ich

    [autoit]

    AdlibRegister("funktion", 60000)

    [/autoit]


    ausführe, wird funktion nach 60 Sekunden aufgerufen. Ich kenne jetzt keine Möglichkeit, dass funktion direkt mit AdlibRegister ausgeführt wird, bis auf die Funktion selbst aufzurufen:

    [autoit]

    AdlibRegister("funktion", 60000)
    funktion()

    [/autoit]

    Gibt es da was leichteres?
    Irgendwie fehlt mir bei AdlibRegister ein Boolean-Parameter, der genau das regelt.

    Einmal editiert, zuletzt von NoName (21. Juni 2011 um 00:58)

  • Ich nehme an, dass dich der erneute Aufruf stört, da du des öfteren AdlibRegister aufrufst
    und (fast) immer einen sofortigen Funktionsaufruf haben willst...

    Dies sollte helfen:

    Spoiler anzeigen
    [autoit]

    AdlibRegisterEx("writeConsole",10000,True) ; Aufruf mit sofortiger Wirkung

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

    For $i=0 To 1 ; Pause, damit der Effekt "wirken" kann
    Sleep(20000)
    Next
    AdlibUnRegister()

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

    Func writeConsole() ; Beispielfunktion
    ConsoleWrite("."&@CRLF)
    EndFunc

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

    ; sollte intuitiv verständlich sein:
    Func AdlibRegisterEx($sFunc, $iTime = 250, $bInstantCall = False)
    If $bInstantCall Then Call($sFunc)
    AdlibRegister($sFunc, $iTime)
    EndFunc

    [/autoit]

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Richtig. Ich benutze AdlibRegister mittlerweile sehr oft und das manuelle Aufrufen ist lästig, sieht unschön aus und sorgt für weniger Übersichtlichkeit.

    Ich habe auch schon an diese Methode gedacht mit Call, aber der Obfuscator verträgt sich mit dem Befehl ja nicht...

    An wen muss ich mich wenden wenn ich den Parameter für kommende AutoIt Versionen vorschlagen möchte? Sollte ja kein großer Akt sein und ich denke ich bin nicht der einzige, der das nutzen würde.

  • Ich habe auch schon an diese Methode gedacht mit Call, aber der Obfuscator verträgt sich mit dem Befehl ja nicht...


    Dann würde ich darüber nachdenken, auf diesen unglaublich sinnlosen Vorgang zu verzichten.
    Warum auf ein Sprachfeature verzichten nur um einen Schutz zu geniessen, der garkeiner ist?

  • @progandy: Dankeschön.

    i2c: Habe jetzt keine Lust den Grund für meine Verwendung des Obfuscators zu nennen geschweige denn mich zu rechtfertigen also lasse ich es komplett. Aber unglaublich sinnlos ist der Vorgang nicht.

  • Kein Grund gleich den Gong zu schlagen. Du sollst dich ja um Gottes Willen nicht rechtfertigen. Die Sinnhaftigkeit des obfuscaten (Schreibkrampf) sei mal dahingestellt. Wenn du meinst, das es dir was bringt .... :rolleyes:

    Sollte ja lediglich eine Anregung sein, die dir ermöglichen würde, den von XovoxKingdom vorgeschlagenen Weg zu gehen.

  • Du kannst übrigens auch für weitere Funktionen Obfuscator-Regeln festlegen, sodass die Parameter als Funktionen erkannt werden. Dazu fügst du der SciTE/Obfuscator/Obfuscator.dat folgende Zeile hinzu:
    adlibregisterex,1,0

  • i2c: Ja sry, bin ein bisschen übermüdet^^ Aber bei mir macht das schon Sinn.

    @progandy: Werds mal testen, danke.