msgbox/error UDF

  • Hallo,

    bin ganz neu hier, versuche mich aber schon seit einiger Zeit mit AutoIt3. Ich habe mal eine Vorlage von 5 einfachen Funktionen erstellt, die ich in fast jedem Script brauche. Vielleicht kann jemand was damit anfangen. Wird natürlich nach und nach erweitert.

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

    ; Check if file exists

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

    Func CheckFile ($File)
    If not FileExists($File) then abort("File does not exist: " & $File)

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

    EndFunc

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

    ;__________________________________________________________________________________________________

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

    ; Shows Message Box with buttons OK and Cancel

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

    Func OK_Cancel ($Title,$Text)

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

    Local $OK_Cancel =MsgBox(0, $Title, $Text)
    If $OK_Cancel = 2 Then abort("You pressed Cancel.")

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

    Return
    EndFunc

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

    ;__________________________________________________________________________________________________

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

    ; Shows Message Box with buttons YES and NO

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

    Func Yes_No ($Fenstertitel,$Text)

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

    Local $yes_no = ConsoleWrite($Text)
    If $yes_no = 6 Then
    return("yes")
    else
    return("no")
    EndIf
    EndFunc

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

    ;__________________________________________________________________________________________________

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

    ; Terminate / user abort

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

    Func Terminate ()
    Local $return = MsgBox(36, "Terminate", "Would you like to terminate the script?")
    If $return = 6 then Exit 1
    EndFunc

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

    ;__________________________________________________________________________________________________

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

    ; error: Message Box / Exit 1

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

    Func abort($Info)
    MsgBox(16, "ERROR", $Info & @CRLF & @CRLF & "Exit.")
    Exit 1
    EndFunc

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

    ;__________________________________________________________________________________________________

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

    Hallo,

    das ist natürlich noch sehr einfach.
    Aber hier ist auch noch ein kleiner Fehler

    Bei 0 kommt nur ok. In Scite gibt es übrigens eine MsgBox Hilfetool!

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

    ; Shows Message Box with buttons OK and Cancel

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

    Func OK_Cancel ($Title,$Text)

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

    Local $OK_Cancel =MsgBox(0, $Title, $Text)
    If $OK_Cancel = 2 Then abort("You pressed Cancel.")

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

    Return
    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Vielen Dank für die Rückmeldung. Das Tool in scite muss ich mir mal ansehen.

    oh, ja, ich hab auch noch mehr Fehler entdeckt.
    Allerdings fehlt es mir meist am Konzept der Struktur: Was wird 1x pro Script definiert (z.B. Fenstertitel) oder was nicht? Was sind globale Variablen, was wird jedes Mal "durchgereicht"

    Ich werde jetzt mal weiter bauen und mich wieder melden.

  • Täuscht das oder rieche ich da einen Hauch von C++ ?
    "YES_NO", das schaut aus wie C++ Message-Box :D

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Danke für die Blumen! Nein, C++ kenne ich nur vom Namen.

    Hier mein Update der UDF, dazu eine UDF für die Arbeit mit Parametern. Freue mich auf Feedback.

    msgudf.au3

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ;__________________________________________________________________________________________________

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

    ; Check if file exists

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

    Func CheckFile ($File)
    If not FileExists($File) then abort("File does not exist: " & $File)

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

    EndFunc

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

    ;__________________________________________________________________________________________________

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

    ; Shows Message Box with buttons OK and Cancel

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

    Func OK_Cancel ($Text)

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

    Local $OK_Cancel =MsgBox(1, @ScriptName, $Text)
    If $OK_Cancel = 2 Then Terminate()

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

    Return
    EndFunc

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

    ;__________________________________________________________________________________________________

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

    ; Shows Message Box with buttons YES and NO

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

    Func Yes_No ($Text)

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

    Local $yes_no = MsgBox(4, @ScriptName, $Text)
    If $yes_no = 6 Then
    return("yes")
    else
    return("no")
    EndIf
    EndFunc

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

    ;__________________________________________________________________________________________________

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

    ; Terminate / user abort / Exit 1

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

    Func Terminate ()
    MsgBox(30, "Terminate - " & @ScriptName, "User abort. Script will terminate.")
    Exit 1
    EndFunc

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

    ;__________________________________________________________________________________________________

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

    ; error: Message Box / Exit 1

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

    Func abort($Info)
    MsgBox(16, "ERROR - " & @ScriptName, $Info & @CRLF & @CRLF & "Exit.")
    Exit 1
    EndFunc

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

    ;__________________________________________________________________________________________________

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


    paramUDF.au3

    Spoiler anzeigen
    [autoit]

    ;___________________________________________________________________________________________________________________________________________________________

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

    ; THESE FUNCTIONS HELP ME TO WORK WITH PARAMETERS

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

    ;___________________________________________________________________________________________________________________________________________________________

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

    Func Parameter($parameter_to_check) ; FOR USE WITH IF, e.g. If Parameter("/?") then help()

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

    Local $i
    Local $bool=False

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

    For $i = 1 To $CmdLine[0]

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

    If $CmdLine[$i]=$parameter_to_check Then $bool=True

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

    Next

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

    return $bool

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

    EndFunc ; Func IfParameter()

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

    ;___________________________________________________________________________________________________________________________________________________________

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

    Func get_parameters() ; especially for debugging

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

    Local $i
    Local $text

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

    For $i=1 to $CmdLine[0]
    $text=$text & " " & $CmdLine[$i]
    Next

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

    MsgBox(0, "", "Number of parameters: " & $CmdLine[0] & @CRLF & $text)
    Exit 0

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

    EndFunc

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

    ;___________________________________________________________________________________________________________________________________________________________

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


    und die zugehörigen Aufrufe:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <parameterUDF.au3>

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

    ;___________________________________________________________________________________________________________________________________________________________

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

    If Parameter("/?") then MsgBox(0, "", "This is the help site") ; CHECKS IF THE PARAMETER IS USED IN YOUR COMMAND LINE

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

    get_parameters() ; Creates a message box with all used parameters

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

    ;___________________________________________________________________________________________________________________________________________________________

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