If Then ... Knopf

  • Ist eine solche "if Then" schlaufe möglich ode probier ich hier äpfel mit birnen zu vergleichen.

    Währe um kurze hilfe hier wirklich dankbar.


    MC

    <Ausschnitt von Code>

    Spoiler anzeigen
    [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $runnow
    If GUICtrlRead($laptop) And GUICtrlRead($os) And GUICtrlRead($office) And GUICtrlRead($language) Then
    If FileExists("r:\"&$laptop&$os&$office&$language) Then MsgBox(0, "", "file exist")
    Else
    _RunNow()
    Else
    MsgBox(0, "", "file exist")
    ;msgbox(0,"","Weiter")
    Else
    msgbox(0,"Hinweis","Bitte zuerst alle Felder ausfüllen!")
    EndIf
    EndIf

    [/autoit]
  • du hast ja immer if Guictread() And Guictrlread() Then

    du musst aber mit GuiCtrlread() auch vergleichen
    also zb if Guictrlread($office) = "office 07"
    einfach nur guictrlread bringt dir ja nix

    /Edit
    was mir noch aufgefallen ist du hast unten bei if FileExists die Variablen von deinem Control genommen du müsstest aber die rückgabe von guictlread verwenden
    zb $office_read = Guictrlread($office)

  • Für die GUICtrlReads müsstest du eine Bedingung angeben, z.B. das sie nicht leer sein dürfen.
    Ungefähr so dürfte das funktionieren.

    Spoiler anzeigen
    [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $runnow
    If GUICtrlRead($laptop) <> "" And GUICtrlRead($os) <> "" And GUICtrlRead($office) <> "" And GUICtrlRead($language) <> "" Then
    If FileExists("r:\" & $laptop & $os & $office & $language) Then
    MsgBox(0, "", "file exist")
    Else
    _RunNow()
    EndIf
    Else
    MsgBox(0, "Hinweis", "Bitte zuerst alle Felder ausfüllen!")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Allerdings wäre es eleganterinnerhalb der Funktion RunNow() auf Fehler zu prüfen.

  • Meinst du das nicht eher so?

    Spoiler anzeigen
    [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $runnow
    If GUICtrlRead($laptop) <> "" And GUICtrlRead($os) <> "" And GUICtrlRead($office) <> "" And GUICtrlRead($language) <> "" Then
    If FileExists("r:\" & $laptop & $os & $office & $language) Then
    MsgBox(0, "", "file exist")
    _RunNow()
    Else
    MsgBox(0, "", "file does not exist")
    EndIf
    Else
    MsgBox(0, "Hinweis", "Bitte zuerst alle Felder ausfüllen!")
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Danke der schnellen hilfe !!!!


    :rock: SEuBo :rock: hatt mein Probelm genau getrofen !.


    <> "" vergleichen die GUICtrlRead Variablen oder ?
    muss noch einiges lernen jaja !!

    Danke Vielmals!.

  • <> : Prüft, ob zwei Werte nicht gleich sind. Groß- und Kleinschreibung wird nicht berücksichtigt, falls Strings verwendet werden. Um die Ungleichheit unter Beachtung der Groß- und Kleinschreibung festzustellen, ist Not ("string1" == "string2") zu verwenden