überprüfung oder sowas in der art

  • nabend

    die frage zum tage

    [autoit]


    If $1 = $test1 = $2 = $test2 Then

    [/autoit]


    schaut komisch aus ich weis
    die frage hier zu ist
    wenn wert von $1 = $test1 und danach der wert von $2 = $test2 Then
    also erst wenn die beiden sachen überprüft worden sind erst ausführen
    aber wie macht man das richtig?
    grezz Mc.Neal

    • Offizieller Beitrag
    [autoit]

    $1=1
    $2=1
    $test=1
    $test2=1
    If ($1 =$test) AND ($2 = $test2) then
    MsgBox(0,"Info","Beide Bedingungen treffen zu")
    EndIf

    [/autoit]


    Oder das ganze ohne Klammern :

    [autoit]

    $1 = 1
    $2 = 1
    $test = 1
    $test2 = 1
    If $1 = $test And $2 = $test2 Then
    MsgBox(0, "Info", "Beide Bedingungen treffen zu")
    EndIf

    [/autoit]
  • danke raupi
    jetzt hab ich noch eine frage

    [autoit]


    $1= 1
    $test1 = 1
    $2= 1
    $test2 = 2
    $3= 1
    $test3 = 1
    If $1 = $test1 And $2 = $test2 or $3 = test3 Then
    ....
    EndIf

    [/autoit]


    währe das so richtig wen $2 und $3 als variable ausgebe?
    €dit: bevor ich noch ein thread aufmache hab noch ein problem mit playsound
    er startet es richtig aber läst es nicht ausspielen es kommt mir so vor als ob er es versucht in 1 sec 100x abzuspieln wie kann ich das beheben?
    hab es mit standard einstellungen versucht also

    [autoit]

    SoundPlay ("file/file.wav", 0)

    [/autoit]

    Einmal editiert, zuletzt von Mc.Neal (28. Juli 2009 um 07:33)

  • Hast du SoundPlay in einer Schleife gestartet? Hört sich bei dir nämlich so an.
    Versuch es mal mit

    [autoit]

    SoundPlay ("file/file.wav", 1)

    [/autoit]


    Also den Parameter 'wait' auf 1 stellen, dann pausiert das Skript bis der Sound zu Ende gespielt ist?
    Ansonsten schau dir mal

    [autoit]

    _SoundPlay

    [/autoit]

    an.


    Bei der If-Abfrage kommt es darauf an was zu erzielen willst. Je nachdem was zusammengehören soll, muss in Klammern gefasst werden.

    [autoit]

    If ($1 = $test1 And $2 = $test2) or $3 = $test3 Then
    ; das ist ganz was anderes
    If $1 = $test1 And ($2 = $test2 or $3 = $test3) Then

    [/autoit]
  • verstehe ich jetzt nicht ganz ;(
    $2 und $3 ist variable in gegensatz zu $1
    also muss ich jetzt 2 if schleifen versteh ich das richtig?

    SounPlay jo 1 geht nicht da ich nicht den script in der zeit pausieren möchte bis er abgespielt ist
    werde mir mal die _soundplay anschaun

  • Nein du brauchst keine 2 If-Schleifen. Du musst nur wissen was du erreichen willst, denn je nachdem was du zusammenklammerst ergibt sich ein anderes Ergebnis.
    SoundPlay sollte eigentlich auch funktionieren, wenn du es richtig anwendest, aber ohne Skript muss immer soviel gerätselt werden, bis man endlich auf eine Lösung stößt. ;)

  • immer diese source bettler :P
    wist ihr denn nicht? es geht immer um ein bot :D spass beiseite
    script ist simple weil ich damit die einzelne funtionen teste
    das wegen variable

    [autoit]


    WinWaitActive ("Unbenannt - Editor")
    $1=1
    $2=1
    $3=1
    $test=1
    $test2=1
    $test3=0
    If $1 =$test AND ($2 = $test2 or $3 = $test3) then
    Send ("Test men")
    EndIf

    [/autoit]


    hier jetzt wegen sound

    [autoit]


    #include <Sound.au3>
    WinWaitActive ("iGoogle - Mozilla Firefox")
    While 1
    _testfunc()
    Sleep(100)
    WEnd

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

    Func _testfunc()
    $blub = PixelGetColor (9,10)
    If $blub = 0x373A48 Then
    $sound = _SoundOpen("bla.wav", "warn")
    While 2
    If _SoundPos ($sound, 2) >=5000 Then
    _SoundStop ($sound)
    EndIf
    WEnd
    EndIf
    EndFunc

    [/autoit]


    sound so oft abspielen bis das nichtmehr vorhanden ist die func ist bei mir in einer while drinnen da kommt halt das problem mitn dem PlaySound
    das er es 100x in der sekunde abspielen möchte.
    wenn ich es so mache passiert garnix

  • bitte schön: (getestet...)

    Spoiler anzeigen
    [autoit]

    #include <Sound.au3>

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

    While 1
    _testfunc()
    Sleep(100)
    WEnd

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

    Func _testfunc()
    While Hex(PixelGetColor(9,10),6) = "373A48"
    $sound = _SoundOpen(@WindowsDir & "\media\tada.wav")
    _SoundPlay($sound)
    While _SoundStatus($sound) = "playing"
    sleep(10)
    WEnd
    WEnd
    EndFunc

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • danke schnuffel
    geht super
    hab dazu aber wieder eine frage :rofl:

    [autoit]


    While Hex(PixelGetColor(65,64),6) = "EB802A"
    ;Hex ist klar aber das ,6 versteh ich nicht ganz

    [/autoit]
  • steht alles in der Hilfe
    einfach mal lesen.
    http://www.autoit.de/dokumentation_aktuell/functions/Hex.htm

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • jetzt versteh ich 6 steht für die max zeichen muste es jetzt 2x anschaun bis ich es verstanden hab ;(

    schnuffel aber die überprüfung ist jetzt richtig so oder?

    [autoit]


    WinWaitActive ("Unbenannt - Editor")
    $1=1
    $2=1
    $3=1
    $test=1
    $test2=1 ;variable
    $test3=0 ;auch variable
    If $1 =$test AND ($2 = $test2 or $3 = $test3) then
    Send ("Test men")
    EndIf

    [/autoit][autoit][/autoit][autoit][/autoit]
    • Offizieller Beitrag

    Vorrausgesetzt du willst folgendes erreichen :

    Wenn $1 =$test und entweder $2=Test2 oder $3 =Test3 dann mach was .

    Wenn das so sein soll dann stimmt es .