Verhindern das ein Befehl doppelt ausgeführt wird.

  • Ich habe zwei Dateien die gleichzeitig ablaufen bzw. können.

    beide enthalten den Befehl einen Sound abzuspielen.

    [autoit]

    SoundPlay("C:\xxx\xxx\2.wav",0)

    [/autoit]

    kann man es verhindern das der Befehl ausgeführt wird, wenn er schon von einer anderen Datei ausgeführt wird?
    Weil es wäre blöd wenn der Sound sich doppelt ;)

    Danke schon mal :D

  • 1.) prüfe ob in der Registry oder INI eine "1" steht.
    2.) eine "1" irgendwo in eine INI-Datei oder in die Registry schreiben, wenn sie noch nicht drinnen steht.
    3.) ist die "1" drinne, dann Script beenden, wenn nicht Script weiter laufen lassen und am Ende die "1" löschen, damit das Script später wieder starten kann.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Also habe ich das richtig verstanden, das du 2 verschiedene Scripte hast, in denen der Ton laufen kann?
    Dann wäre wie Alina schon geschrieben hat ein Eintrag in ne Ini oder Registry am einfachsten, den dann überprüfen, ob vorhanden, wenn ja dann nicht abspielen, wenn nicht dann abspielen

  • Da hast Du es richtig verstanden ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Vielen Danke erstmal für die raschen Antworten! :D

    Nun ist es ja so das ich nicht wirklich viel dunst habe :S , daher würde ich darum bitten das ihr mir das vlt. noch ein bissel genauer erklärt:


    1.) prüfe ob in der Registry oder INI eine "1" steht.
    2.) eine "1" irgendwo in eine INI-Datei oder in die Registry schreiben, wenn sie noch nicht drinnen steht.
    3.) ist die "1" drinne, dann Script beenden, wenn nicht Script weiter laufen lassen und am Ende die "1" löschen, damit das Script später wieder starten kann.

    Das mit dem Sound wiedergeben ist auch nur ein Beispiel, dass selbe würde ich auch für eine GUI brauchen. So dass die identische GUI nicht von zwei EXE doppelt erzeugt wird.


    Ach und gleich mal noch eine frage dran, wie kann ich eigentlich den rückgabwert von einer Inputbox auswerten, mit case und Switch habe ich es nicht hinkommen:

    [autoit]

    $input = InputBox("Deutsch-->", $wort[2], "...", "", -1, -1)

    [/autoit]


    THX :D

    2 Mal editiert, zuletzt von To@sT (4. Dezember 2011 um 22:08)

  • Hier mal ein Beispiel für die Registry Variante

    [autoit]

    RegWrite("HKEY_CURRENT_USER\Software\Test", "Test Schlüssel", "REG_DWORD", "0")
    ;====================================================================================
    ; Das hier ist was du brauchst, oben das ist nur um den Schlüssel anzulegen
    $var = RegRead("HKEY_CURRENT_USER\Software\Test", "Test Schlüssel") ; prüfen, ob Schlüssel vorhanden
    If $var = 0 Then ; wenn nicht
    RegWrite("HKEY_CURRENT_USER\Software\Test", "Test Schlüssel", "REG_DWORD", "1") ; Schreibt 1 in die Registry, damit das andere Programm nicht den Sound abspielen kann
    SoundPlay("C:\xxx\xxx\2.wav",0) ; spielt den Sound ab
    EndIf
    RegWrite("HKEY_CURRENT_USER\Software\Test", "Test Schlüssel", "REG_DWORD", "0")

    [/autoit]

    ;setzt den Wert wieder zurück, damit wieder ein Sound abgespielt werden kann

  • He Super danke, ich hätte nicht gedacht das es so einfach wäre in die Registry etwas einzutragen und etwas zu lesen. Ich werde es mal auf diesem weg probieren, mal sehen ob es funst :)

    THX