Befehlssyntax

  • Hallo allerseits


    Bei untenstehenden Befehl will ich mit einem If gleichzeitig 2 Bedingungen einbinden.
    Bei der Ausführung wird immer nur die erste Bedingung bearbeitet. Die zweite Bedingung nach dem "AND" wird einfach ignoriert !!?!!?.

    Der Befehl ist doch von der Syntax her richtig. Oder ?? Oder habe ich wieder mal n Blackout.


    If PixelGetColor( $KoordLR, $KoordLL) = 0xFFFFFF And PixelGetColor( $KoordRL, $KoordRR) <> 0x000000 Then
    Send("Error !! Einstellungen ändern !!")
    sleep (100)
    EndIf


    Gruß und Thx
    PowerMax

  • PixelGetColor retourniert Dezimal.
    Außerdem senden im Raw-Modus ist besser wenn !! enthalten sind.

    [autoit]

    Global $KoordLR = 0, $KoordLL = 0, $KoordRL = 500, $KoordRR = 500

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

    If PixelGetColor( $KoordLR, $KoordLL) = Dec('FFFFFF') And PixelGetColor( $KoordRL, $KoordRR) <> Dec('000000') Then
    MsgBox(0,PixelGetColor( $KoordLR, $KoordLL),PixelGetColor( $KoordRL, $KoordRR))
    Send("Error !! Einstellungen ändern !!",1)
    sleep (100)
    EndIf

    [/autoit]
  • Jetzt ist bei mir absolute Konfusion.
    Ich habe mir seit langem wieder den Pixelgetcolorbefehl angeschaut. Hab gar nicht gewußt, daß der den Dezimal retourniert. Vor allem weil schon ich schon einige Autit-Scripte erstellt habe, wo ich die Wiedergabe als Hex angenommen habe, und die auch als solches erkannt wurden.

    Naja, ist lustig, daß sich mein Fehler so lange verstecken konnte. xxxD

    Thx für die Hilfe, werde gleich mal testen ob meine Fehlermeldungen jetzt funktionieren.

    PowerMax

  • funkey

    Ich hab mir mal deine Tips zu Herzen genommen.
    Bedingung Nummer 1 wird einwandfrei erkannt und dementsprechend behandelt, aber ich hab aber immer noch das Problem mit der 2ten Bedingung. ( And PixelGetColor( $KoordRL, $KoordRR) <> Dec('000000') ) Die wird einfach ignoriert.

    Bedingung 1 entscheidet ob ich meine Fehlermeldung bekomme oder nicht, und Bedingung 2, egal ob erfüllt oder nicht, hat keinen Einfluß ????
    (Ausgabenwerte von Bedingung 2 sogar Protokolliert, egal mit welchem Wert, steht immer als erfüllt da. )

    Fehlermeldungen sollten aber nur dann kommen wenn beide Bedingungen erfüllt sind. Also einmal = und einmal <>.


    Ich will, wenn ich das gelöst habe, 6 verschieden Fehlermeldung wie oben schon beschrieben in ein bestehendes Script einbinden. Hat jemand eine Idee warum es nicht funktioniert. Oder hat wer n Tipp wie es anders lösbar ist .


    Jetzt ist mir gerade n Gedanke gekommen. Mich interessiert, was passiert, wenn ich die <> Bedingung an erste Stelle vom if Befehl setzte. Mal schaun ob dann die = Bedingung auch immer als erfüllt da steht.


    PowerMax

  • leider doch Reinschwarz.

    Ist im original-Script mit Schwarz definiert, mit PixelGetColor extra nochmal ausgelesen, und mit AutoitWindowInfo kontrolliert.( Ist ja nicht schwer, es handelt sich nur um Fenster wo ein Schaltpult simuliert wird.)

    Das <> Schwarz brauch ich leider, weil es sich um eine Pegelanzeige handelt, und ich die Farben beim Auschlagen nicht definieren kann.

    Das ganze ist mir ein Rätsel.
    Jetzt ändere ich mal im Script die Farbe. Was zwar nichts bringen wird. Danach werde ich mir was anderes als die IF Abfrage überlegen.

    Thx
    Powermax

    Gerade noch die Meldung mit dem Klammern gesehen. Könnte auch der Grund sein. Probiers gleich
    Thx