Error im Script (Syntax, switch)

  • Guten Abend,

    habe ein Problem mit meinem Script. Nämlich findet Scite (über SyntaxCheckProd) 3 Fehler.

    Quelltext:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <Misc.au3>
    #include <Excel.au3>

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

    if _Singleton("Skript",1) = 0 Then
    Msgbox(0,"Warnung","Eine Instanz des Skripts wird bereits ausgeführt!")
    Exit
    EndIf

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

    HotKeySet("{F2}", "bildAnpassen")
    HotKeySet("{F3}", "mail")

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

    #Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\Acer\Desktop\Dateneingabe v2.5\form3.0.kxf
    $Dateneingabe = GUICreate("Dateneingabe v3.0", 596, 420, 191, 147)
    $Objekt = GUICtrlCreateGroup("Objekt", 16, 16, 193, 137)
    $Input1 = GUICtrlCreateInput("Name", 31, 41, 160, 21)
    $Input2 = GUICtrlCreateInput("Straße", 31, 76, 161, 21)
    $Input3 = GUICtrlCreateInput("PLZ / Ort", 31, 111, 161, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Auftraggeber = GUICtrlCreateGroup("Auftraggeber", 232, 16, 185, 137)
    $Input4 = GUICtrlCreateInput("Name", 247, 41, 153, 21)
    $Input5 = GUICtrlCreateInput("Straße", 247, 76, 153, 21)
    $Input6 = GUICtrlCreateInput("PLZ / Ort", 247, 111, 153, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Daten = GUICtrlCreateGroup("Daten", 440, 16, 137, 265)
    $Input9 = GUICtrlCreateInput("Datum", 455, 41, 105, 21)
    $von = GUICtrlCreateInput("von", 455, 76, 45, 21)
    $bis = GUICtrlCreateInput("bis", 515, 76, 45, 21)
    $Input10 = GUICtrlCreateInput("Dauer", 455, 111, 106, 21)
    $Input7 = GUICtrlCreateInput("Rechnungsnr.", 455, 194, 106, 21)
    $Input8 = GUICtrlCreateInput("Auftragsnr.", 455, 231, 105, 21)
    $Slider1 = GUICtrlCreateSlider(455, 146, 105, 25)
    $Slider2 = GUICtrlCreateSlider(455, 146, 105, 33)
    GUICtrlSetLimit($Slider1, 16, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlSetLimit($Slider2, 80, 0)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Label1 = GUICtrlCreateLabel("0 2 4 6 8", 464, 176, 91, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $eingeben = GUICtrlCreateButton("Daten eingeben", 221, 304, 161, 73, 0)
    GUICtrlSetFont(-1, 13, 800, 0, "MS Sans Serif")
    GUICtrlSetCursor (-1, 0)
    $Weite = GUICtrlCreateGroup("weitere Optionen", 16, 168, 401, 112)
    $bestaetigen = GUICtrlCreateButton("Objekt = Aufftraggeber", 32, 208, 121, 41, 0)
    $fahrt = GUICtrlCreateButton("Fahrtweg berechnen", 168, 208, 113, 41, 0)
    $Umbenennung = GUICtrlCreateButton("Umbenennung", 296, 208, 105, 41, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $MenuItem = GUICtrlCreateMenu("&Auftragsgeber")
    $Firma = GUICtrlCreateMenu("Firma", $MenuItem)
    $Alfred = GUICtrlCreateMenuItem("Alfred", $Firma)
    $Hans = GUICtrlCreateMenuItem("Hans", $Firma)
    $3 = GUICtrlCreateMenuItem("AutoIt", $Firma)
    $4 = GUICtrlCreateMenuItem("4", $Firma)
    $5 = GUICtrlCreateMenuItem("5", $Firma)
    $6 = GUICtrlCreateMenuItem("6", $Firma)
    $7 = GUICtrlCreateMenuItem("7", $Firma)
    $8 = GUICtrlCreateMenuItem("8", $Firma)
    $9 = GUICtrlCreateMenuItem("9", $Firma)
    $10 = GUICtrlCreateMenuItem("10", $Firma)

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

    $Info = GUICtrlCreateMenu("&Info")
    $Inf = GUICtrlCreateMenuItem("Info", $Info)
    $MenuItem2 = GUICtrlCreateMenu("&Hilfe")
    $Hilfe = GUICtrlCreateMenuItem("Hilfe", $MenuItem2)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Func bildAnpassen()
    WinWaitActive( "Bericht.doc [Kompatibilitätsmodus] - Microsoft Word","")
    MouseClick("left",1150,70,1)
    Send ("5,7")
    Send ("{ENTER}")
    MsgBox ( 0, "Bild", "Bildgröße geändert!" , 0.5)
    EndFunc

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

    Func mail()
    Send ("Sehr geehrte Damen und Herren,")
    Send ("{ENTER}")
    Send ("{ENTER}")
    Send ("{ENTER}")
    Send ("bitte beachten Sie, dass die Rechnung auf diesem Weg übermittelt wird und damit als zugesandt gilt.")
    Send ("{ENTER}")
    Send ("Eine postalische Nachsendung der Rechnung erfolgt nicht.")
    Send ("{ENTER}")
    Send ("{ENTER}")
    Send ("{ENTER}")
    Send ("mit freundlichen Grüßen")
    Send ("{ENTER}")
    Send ("{ENTER}")
    Send ("Name der Firma - [geändert]")
    EndFunc

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

    Case $Slider1
    Guictrlsetdata($Input10,Guictrlread($slider1)/2)

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

    Case $bestaetigen

    Guictrlsetdata ($Input4, GUICtrlRead ($Input1))
    Guictrlsetdata ($Input5, GUICtrlRead ($Input2))
    Guictrlsetdata ($Input6, GUICtrlRead ($Input3))

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

    Case $fahrt
    $PlzAuftr = (GUICtrlRead ($Input6))
    ShellExecute ("www.maps.google.com")
    Sleep (3000)
    MouseClick("left",100,180,1)
    Send("{TAB}")
    Send($PlzAuftr)
    Send("{ENTER}")

    Case $eingeben

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

    ;Felder auslesen -------------------------------------------

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

    $NameObj = (GUICtrlRead ($Input1))
    $StraObj = (GUICtrlRead ($Input2))
    $PlzObj = (GUICtrlRead ($Input3))
    $NameAuftr = (GUICtrlRead ($Input4))
    $StraAuftr = (GUICtrlRead ($Input5))
    $PlzAuftr = (GUICtrlRead ($Input6))
    $Rechnungsnr = (GUICtrlRead ($Input7))
    $Auftragsnr = (GUICtrlRead ($Input8))
    $Datum = (GUICtrlRead ($Input9))
    $vonZ = (GUICtrlRead ($von))
    $bisZ = (GUICtrlRead ($bis))
    $dauerAlt = (GUICtrlRead ($Input10))

    ;Felder auslesen fertig ------------------------------------

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

    ;In Word übertragen ----------------------------------------
    ShellExecute ( "Bericht.doc" )
    WinWaitActive( "Bericht.doc [Kompatibilitätsmodus] - Microsoft Word","")

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

    Sleep ( 200 )

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

    Send ("{TAB}")
    Send ($NameObj)
    ;Sleep (500)

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

    Send ("{DOWN}")
    Send ($StraObj)
    ;Sleep (500)

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

    Send ("{DOWN}")
    Send ($PlzObj)
    ;Sleep (500)

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

    Send ("{RIGHT}{UP}{UP}{END}{RIGHT}")
    ;Sleep (500)

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

    Send ($NameAuftr)
    ;Sleep (500)

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

    Send ("{DOWN}")
    Send ($StraAuftr)
    ;Sleep (500)

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

    Send ("{DOWN}")
    Send ($PlzAuftr)
    ;Sleep (500)

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

    Send ("{HOME}{LEFT}{HOME}{DOWN}{END}{RIGHT}")
    ;Sleep (500)

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

    Send ($Auftragsnr)
    ;Sleep (500)

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

    Send ("{DOWN}")
    Send ($Datum)
    ;Sleep (500)

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

    Send ("{TAB}{TAB}")
    Send ($vonZ)

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

    Send ("{TAB}{TAB}")
    Send ($bisZ)

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

    Send ("{TAB}{TAB}")
    if $dauerAlt = 0 Then
    $dauerAlt = 0.0
    EndIf
    if $dauerAlt = 1 Then
    $dauerAlt = 1.0
    EndIf
    if $dauerAlt = 2 Then
    $dauerAlt = 2.0
    EndIf
    if $dauerAlt = 3 Then
    $dauerAlt = 3.0
    EndIf
    if $dauerAlt = 4 Then
    $dauerAlt = 4.0
    EndIf
    if $dauerAlt = 5 Then
    $dauerAlt = 5.0
    EndIf
    if $dauerAlt = 6 Then
    $dauerAlt = 6.0
    EndIf
    if $dauerAlt = 7 Then
    $dauerAlt = 7.0
    EndIf
    if $dauerAlt = 8 Then
    $dauerAlt = 8.0
    EndIf

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

    $dauerNeu = StringReplace ($dauerAlt,".",",") ; StringReplace für ein Komma statt Punkt
    Send $dauerNeu

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

    ;In Word übertragen fertig --------------------------------

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

    ;In Excel übertragen ---------------------------------------

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

    ShellExecute ( "Rechnung.xls" )
    WinWaitActive("Microsoft Excel - Rechnung.xls [Kompatibilitätsmodus]","") ;------------------------------------------

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

    Send ($NameAuftr)
    Send ("{ENTER}")
    ;Sleep (500)

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

    Send ($StraAuftr)
    Send ("{ENTER}")
    ;Sleep (500)

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

    Send ($PlzAuftr)
    Send ("{ENTER}{ENTER}{ENTER}{ENTER}")
    Send ("Einsatz Messtechniker am ")
    ;Sleep (100)
    Send ($Datum)
    Send (" ")
    Send ($vonZ)
    Send (" - ")
    Send ($bisZ)
    Send (" Uhr")

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

    Send ("{UP}{UP}{UP}{UP}{UP}{UP}{RIGHT}{RIGHT}{RIGHT}{RIGHT}")
    ;Sleep (500)

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

    Send ($Datum)
    Send ("{ENTER}")
    ;Sleep (500)

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

    Send ($Rechnungsnr)
    Send ("{ENTER}")
    ;Sleep (500)

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

    Send ($Auftragsnr)
    Send

    ("{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}")
    Send ("{LEFT}{LEFT}{LEFT}{LEFT}{LEFT}{RIGHT}")
    ;Sleep (500)

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

    Send ($NameObj)
    Send ("{ENTER}{ENTER}")
    ;Sleep (500)

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

    Send ($StraObj)
    Send ("{ENTER}")
    ;Sleep (500)

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

    Send ($PlzObj)
    Send ("{ENTER}")

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

    MsgBox ( 0, "Info", "Alle Daten wurden in den Messbericht und in die Rechnung übertragen.")

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

    Case $Umbenennung
    $Rechnungsnr = (GUICtrlRead ($Input7))
    $Auftragsnr = (GUICtrlRead ($Input8))
    FileMove ( "Bericht.doc", $Auftragsnr & ".doc" )
    FileMove ( "Rechnung.xls", $Rechnungsnr & ".xls" )

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

    ;In Excel übertragen fertig---------------------------------

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

    ; Auftraggeber Vorlagen --------------------------------------------------------------------

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

    ; 1. Firma Vorlagen -------------------------------------

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

    Case $Alfred
    Guictrlsetdata ($Input4, "Alfred - [geändert]")
    Guictrlsetdata ($Input5, "Beispiel Straße - [geändert]")
    Guictrlsetdata ($Input6, "Beispiel plz ort - [geändert]")

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

    Case $Hans
    Guictrlsetdata ($Input4, "Hans - [geändert]")
    Guictrlsetdata ($Input5, "Beispiel Straße - [geändert]")
    Guictrlsetdata ($Input6, "Beispiel plz ort - [geändert]")

    Case $3
    Guictrlsetdata ($Input4, "Autoit is cool - [geändert]")
    Guictrlsetdata ($Input5, "AutoIt-Straße 3 - [geändert]")
    Guictrlsetdata ($Input6, "33333 AutoIt - [geändert]")

    Case $4
    Guictrlsetdata ($Input4, "Beispiel Name - [geändert]")
    Guictrlsetdata ($Input5, "Beispiel Straße - [geändert]")
    Guictrlsetdata ($Input6, "Beispiel plz ort - [geändert]")

    Case $5
    Guictrlsetdata ($Input4, "Beispiel Name - [geändert]")
    Guictrlsetdata ($Input5, "Beispiel Straße - [geändert]")
    Guictrlsetdata ($Input6, "Beispiel plz ort - [geändert]")

    Case $6
    Guictrlsetdata ($Input4, "Beispiel Name - [geändert]")
    Guictrlsetdata ($Input5, "Beispiel Straße - [geändert]")
    Guictrlsetdata ($Input6, "Beispiel plz ort - [geändert]")

    Case $7
    Guictrlsetdata ($Input4, "Beispiel Name - [geändert]")
    Guictrlsetdata ($Input5, "Beispiel Straße - [geändert]")
    Guictrlsetdata ($Input6, "Beispiel plz ort - [geändert]")

    Case $8
    Guictrlsetdata ($Input4, "Beispiel Name - [geändert]")
    Guictrlsetdata ($Input5, "Beispiel Straße - [geändert]")
    Guictrlsetdata ($Input6, "Beispiel plz ort - [geändert]")

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

    Case $9
    Guictrlsetdata ($Input4, "Beispiel Name - [geändert]")
    Guictrlsetdata ($Input5, "Beispiel Straße - [geändert]")
    Guictrlsetdata ($Input6, "Beispiel plz ort - [geändert]")

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

    Case $10
    Guictrlsetdata ($Input4, "Beispiel Name - [geändert]")
    Guictrlsetdata ($Input5, "Beispiel Straße - [geändert]")
    Guictrlsetdata ($Input6, "Beispiel plz ort - [geändert]")

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


    ; 2. Hausverwaltung Vorlagen -----------------------------------

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

    ; Hier hab ich noch ~50 Adressen ....

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


    ; Auftraggeber Vorlagen fertig--------------------------------------------------------------

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

    Case $Inf

    MsgBox(64,"Info","Updates:" & @CRLF &
    "---------------------------------------------------------------------------"
    & @CRLF & " |" & @CRLF &
    " | Version 1.0" & @CRLF &
    " | - Dateneingabe.exe funktioniert" & @CRLF
    & " |" & @CRLF & "
    |-------------------------" & @CRLF & " |"
    & @CRLF & " | Version 2.0" & @CRLF &
    " | - mehrere Auftraggeber eingespeichert" &
    @CRLF & " | - Hilfe hinzugefügt" & @CRLF
    & " |" & @CRLF & "
    |-------------------------" & @CRLF & " |"
    & @CRLF & " | Version 2.1" & @CRLF &
    " | - Dateneingabe wartet bis Dokument geöffnet ist"
    & @CRLF & " | - Objekt kann gleich
    Auftraggeber sein" & @CRLF & " | - breitere
    Felder + Uhrzeit hinzugefügt" & @CRLF & " | -
    Messbericht und Rechnung nicht mehr nötig" & @CRLF &
    " | " & @CRLF & "
    |-------------------------" & @CRLF & " |"
    & @CRLF & " | Version 2.2" & @CRLF &
    " | - Aufftraggeber ergänzt " & @CRLF &
    " |" & @CRLF & "
    |-------------------------" & @CRLF & " |"
    & @CRLF & " | Version 2.3" & @CRLF &
    " | - Windows 7 kompatibel" & @CRLF &
    " |" & @CRLF & "
    |-------------------------" & @CRLF & " |"
    & @CRLF & " | Version 2.4" & @CRLF &
    " |" & @CRLF & " | -
    automatische Umbennung der Dokumente" & @CRLF &
    " | - Mail-Text " & @CRLF &
    " | " & @CRLF & "
    |-------------------------" & @CRLF & " |"
    & @CRLF & " | Version 3.0" & @CRLF &
    " |" & @CRLF & " | -
    Fahrtweg in GoogleMaps berechnen" & @CRLF & "
    | - Dauer des Auftrages durch Slider einstellbar" & @CRLF &
    " | " & @CRLF & "
    |-------------------------" & @CRLF & "" & @CRLF & ""
    & @CRLF & "" & @CRLF & "Programmiert von Simulac")

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

    Case $Hilfe

    MsgBox(64,"Hilfe","Tastenkürzel:" & @CRLF & "" & @CRLF
    & " F2 - Bildgröße in Word anpassen" & @CRLF & " F3
    - Mailtext für Rechnung")

    EndSwitch
    WEnd

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

    ; $erlaubt="0123456789"
    ; $input=guictrlread($inputfeld)
    ; for $i=1 to stringlen($input)
    ; if not stringinstr($erlaubt,stringmid($input,$i,1)) then
    ; $input=stringreplace($input,stringmid($input,$i,1),"") ; Löscht alle unbekannte Zeichen...
    ; endif
    ; next
    ; if $inputfeld<>$input then guictrlsetdata(§inputfeld,$input)

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


    Die realen Namen/Adressen aus MenuItem habe ich entfernt, und nur paar Beispiele drin gelassen.


    Koda spuckt ja zusätlich noch das hier aus:

    [autoit]

    While 1

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

    $nMsg = GUIGetMsg()

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

    Switch $nMsg

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

    Case $GUI_EVENT_CLOSE

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

    Exit

    [/autoit]

    dann folgen nur einige Func() und einige Case Teile und am Ende

    [autoit]

    EndSwitch
    WEnd

    [/autoit]

    diese Errors werden dann ausgegeben:

    Spoiler anzeigen


    AutoIt3 Syntax Checker v1.54.8 Copyright (c) Tylo 2007

    Dateneingabe-v3.0.au3(79,1) : ERROR: missing EndSwitch.
    Func
    ^


    Dateneingabe-v3.0.au3(73,13) : REF: missing EndSwitch.
    Switch $nMsg
    ~~~~~~~~~~~~^


    Dateneingabe-v3.0.au3(79,1) : ERROR: missing Wend.
    Func
    ^


    Dateneingabe-v3.0.au3(71,1) : REF: missing Wend.
    While
    ^


    Dateneingabe-v3.0.au3(106,1) : ERROR: syntax error
    Case
    ^


    Dateneingabe-v3.0.au3 - 3 error(s), 0 warning(s)
    >Exit code: 2 Time: 0.379


    Den Hilfepost von Andy hab ich mir durchgelesen, leider kam ich da nicht weiter -_-


    Ich bin für jede Hilfe dankbar! 8)

    Einmal editiert, zuletzt von Simulac (15. März 2012 um 22:09)

  • Du hast in deinem Script was durcheinandergebracht... Wieso liest du dir nicht einfach den Fehlerbericht in der SciTE Konsole Stück für Stück durch? So kannst du gezielt nach und nach die Probleme lösen.
    Alle Funktionsdeklarationen sind nicht nur in einer Endlosschleife sondern innerhalb der Switch Abfrage. Die haben da nichts verloren....
    Du hast einmal bei Send die Klammern weggelassen -> Syntax Error.
    Dann steht einmal nur Send ohne Klammern oder Parameter in deinem Code -> Syntax Error.
    Der Text deiner MsgBox ist über mehrere Zeilen verteilt, wodruch eine ganze Reihe von Syntaktischen Fehlern verursacht wird. Ein String kann eigentlich nur in einer Zeile stehen, es sei denn, man benutzt den "Zeilenumbruch" '-' um ihn auf mehrere zu verteilen. Aber das machst du nicht, daher die Fehler. Der String wird als alles mögliche interpretiert aber nur zu ca. 30% als String.
    Ein paar Zeilen weiter hab ich die vermissten Klammern und Parameter deiner einsamen Send Funktion gefunden.
    Ich hab dein Script mal ein wenig korrigiert, aber die Fehlersuche wird durch die schiere Anzahl von Fehlern ein wenig erschwert. Deinen eigenartigen MsgBox Text musst du aber selber korrigieren, da sitze ich ja Ewigkeiten dran... Sobald du das erledigt hast, sollten auch die Funktionen erkannt werden, die momentan als irgendetwas anderes erkannt werden, sodass die beiden Fehler mit den fehlenden Funktionen für die HotKeys auch beseitigt werden sollten. Dann müsste das ganze funktionieren. Aber unübersichtlich ist es immer noch..

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <Misc.au3>
    #include <Excel.au3>

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

    If _Singleton("Skript", 1) = 0 Then
    MsgBox(0, "Warnung", "Eine Instanz des Skripts wird bereits ausgeführt!")
    Exit
    EndIf

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

    HotKeySet("{F2}", "bildAnpassen")
    HotKeySet("{F3}", "mail")

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

    #region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\Acer\Desktop\Dateneingabe v2.5\form3.0.kxf
    $Dateneingabe = GUICreate("Dateneingabe v3.0", 596, 420, 191, 147)
    $Objekt = GUICtrlCreateGroup("Objekt", 16, 16, 193, 137)
    $Input1 = GUICtrlCreateInput("Name", 31, 41, 160, 21)
    $Input2 = GUICtrlCreateInput("Straße", 31, 76, 161, 21)
    $Input3 = GUICtrlCreateInput("PLZ / Ort", 31, 111, 161, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Auftraggeber = GUICtrlCreateGroup("Auftraggeber", 232, 16, 185, 137)
    $Input4 = GUICtrlCreateInput("Name", 247, 41, 153, 21)
    $Input5 = GUICtrlCreateInput("Straße", 247, 76, 153, 21)
    $Input6 = GUICtrlCreateInput("PLZ / Ort", 247, 111, 153, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Daten = GUICtrlCreateGroup("Daten", 440, 16, 137, 265)
    $Input9 = GUICtrlCreateInput("Datum", 455, 41, 105, 21)
    $von = GUICtrlCreateInput("von", 455, 76, 45, 21)
    $bis = GUICtrlCreateInput("bis", 515, 76, 45, 21)
    $Input10 = GUICtrlCreateInput("Dauer", 455, 111, 106, 21)
    $Input7 = GUICtrlCreateInput("Rechnungsnr.", 455, 194, 106, 21)
    $Input8 = GUICtrlCreateInput("Auftragsnr.", 455, 231, 105, 21)
    $Slider1 = GUICtrlCreateSlider(455, 146, 105, 25)
    $Slider2 = GUICtrlCreateSlider(455, 146, 105, 33)
    GUICtrlSetLimit($Slider1, 16, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlSetLimit($Slider2, 80, 0)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Label1 = GUICtrlCreateLabel("0 2 4 6 8", 464, 176, 91, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $eingeben = GUICtrlCreateButton("Daten eingeben", 221, 304, 161, 73, 0)
    GUICtrlSetFont(-1, 13, 800, 0, "MS Sans Serif")
    GUICtrlSetCursor(-1, 0)
    $Weite = GUICtrlCreateGroup("weitere Optionen", 16, 168, 401, 112)
    $bestaetigen = GUICtrlCreateButton("Objekt = Aufftraggeber", 32, 208, 121, 41, 0)
    $fahrt = GUICtrlCreateButton("Fahrtweg berechnen", 168, 208, 113, 41, 0)
    $Umbenennung = GUICtrlCreateButton("Umbenennung", 296, 208, 105, 41, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $MenuItem = GUICtrlCreateMenu("&Auftragsgeber")
    $Firma = GUICtrlCreateMenu("Firma", $MenuItem)
    $Alfred = GUICtrlCreateMenuItem("Alfred", $Firma)
    $Hans = GUICtrlCreateMenuItem("Hans", $Firma)
    $3 = GUICtrlCreateMenuItem("AutoIt", $Firma)
    $4 = GUICtrlCreateMenuItem("4", $Firma)
    $5 = GUICtrlCreateMenuItem("5", $Firma)
    $6 = GUICtrlCreateMenuItem("6", $Firma)
    $7 = GUICtrlCreateMenuItem("7", $Firma)
    $8 = GUICtrlCreateMenuItem("8", $Firma)
    $9 = GUICtrlCreateMenuItem("9", $Firma)
    $10 = GUICtrlCreateMenuItem("10", $Firma)

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

    $Info = GUICtrlCreateMenu("&Info")
    $Inf = GUICtrlCreateMenuItem("Info", $Info)
    $MenuItem2 = GUICtrlCreateMenu("&Hilfe")
    $Hilfe = GUICtrlCreateMenuItem("Hilfe", $MenuItem2)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Slider1
    GUICtrlSetData($Input10, GUICtrlRead($Slider1) / 2)

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

    Case $bestaetigen

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

    GUICtrlSetData($Input4, GUICtrlRead($Input1))
    GUICtrlSetData($Input5, GUICtrlRead($Input2))
    GUICtrlSetData($Input6, GUICtrlRead($Input3))

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

    Case $fahrt
    $PlzAuftr = (GUICtrlRead($Input6))
    ShellExecute("www.maps.google.com")
    Sleep(3000)
    MouseClick("left", 100, 180, 1)
    Send("{TAB}")
    Send($PlzAuftr)
    Send("{ENTER}")

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

    Case $eingeben

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

    ;Felder auslesen -------------------------------------------

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

    $NameObj = (GUICtrlRead($Input1))
    $StraObj = (GUICtrlRead($Input2))
    $PlzObj = (GUICtrlRead($Input3))
    $NameAuftr = (GUICtrlRead($Input4))
    $StraAuftr = (GUICtrlRead($Input5))
    $PlzAuftr = (GUICtrlRead($Input6))
    $Rechnungsnr = (GUICtrlRead($Input7))
    $Auftragsnr = (GUICtrlRead($Input8))
    $Datum = (GUICtrlRead($Input9))
    $vonZ = (GUICtrlRead($von))
    $bisZ = (GUICtrlRead($bis))
    $dauerAlt = (GUICtrlRead($Input10))

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

    ;Felder auslesen fertig ------------------------------------

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

    ;In Word übertragen ----------------------------------------
    ShellExecute("Bericht.doc")
    WinWaitActive("Bericht.doc [Kompatibilitätsmodus] - Microsoft Word", "")

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

    Sleep(200)

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

    Send("{TAB}")
    Send($NameObj)
    ;Sleep (500)

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

    Send("{DOWN}")
    Send($StraObj)
    ;Sleep (500)

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

    Send("{DOWN}")
    Send($PlzObj)
    ;Sleep (500)

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

    Send("{RIGHT}{UP}{UP}{END}{RIGHT}")
    ;Sleep (500)

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

    Send($NameAuftr)
    ;Sleep (500)

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

    Send("{DOWN}")
    Send($StraAuftr)
    ;Sleep (500)

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

    Send("{DOWN}")
    Send($PlzAuftr)
    ;Sleep (500)

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

    Send("{HOME}{LEFT}{HOME}{DOWN}{END}{RIGHT}")
    ;Sleep (500)

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

    Send($Auftragsnr)
    ;Sleep (500)

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

    Send("{DOWN}")
    Send($Datum)
    ;Sleep (500)

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

    Send("{TAB}{TAB}")
    Send($vonZ)

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

    Send("{TAB}{TAB}")
    Send($bisZ)

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

    Send("{TAB}{TAB}")
    If $dauerAlt = 0 Then
    $dauerAlt = 0.0
    EndIf
    If $dauerAlt = 1 Then
    $dauerAlt = 1.0
    EndIf
    If $dauerAlt = 2 Then
    $dauerAlt = 2.0
    EndIf
    If $dauerAlt = 3 Then
    $dauerAlt = 3.0
    EndIf
    If $dauerAlt = 4 Then
    $dauerAlt = 4.0
    EndIf
    If $dauerAlt = 5 Then
    $dauerAlt = 5.0
    EndIf
    If $dauerAlt = 6 Then
    $dauerAlt = 6.0
    EndIf
    If $dauerAlt = 7 Then
    $dauerAlt = 7.0
    EndIf
    If $dauerAlt = 8 Then
    $dauerAlt = 8.0
    EndIf

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

    $dauerNeu = StringReplace($dauerAlt, ".", ",") ; StringReplace für ein Komma statt Punkt
    Send($dauerNeu)

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

    ;In Word übertragen fertig --------------------------------

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

    ;In Excel übertragen ---------------------------------------

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

    ShellExecute("Rechnung.xls")
    WinWaitActive("Microsoft Excel - Rechnung.xls [Kompatibilitätsmodus]", "") ;------------------------------------------

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

    Send($NameAuftr)
    Send("{ENTER}")
    ;Sleep (500)

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

    Send($StraAuftr)
    Send("{ENTER}")
    ;Sleep (500)

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

    Send($PlzAuftr)
    Send("{ENTER}{ENTER}{ENTER}{ENTER}")
    Send("Einsatz Messtechniker am ")
    ;Sleep (100)
    Send($Datum)
    Send(" ")
    Send($vonZ)
    Send(" - ")
    Send($bisZ)
    Send(" Uhr")

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

    Send("{UP}{UP}{UP}{UP}{UP}{UP}{RIGHT}{RIGHT}{RIGHT}{RIGHT}")
    ;Sleep (500)

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

    Send($Datum)
    Send("{ENTER}")
    ;Sleep (500)

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

    Send($Rechnungsnr)
    Send("{ENTER}")
    ;Sleep (500)

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

    Send($Auftragsnr)

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

    Send("{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}")
    Send("{LEFT}{LEFT}{LEFT}{LEFT}{LEFT}{RIGHT}")
    ;Sleep (500)

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

    Send($NameObj)
    Send("{ENTER}{ENTER}")
    ;Sleep (500)

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

    Send($StraObj)
    Send("{ENTER}")
    ;Sleep (500)

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

    Send($PlzObj)
    Send("{ENTER}")

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

    MsgBox(0, "Info", "Alle Daten wurden in den Messbericht und in die Rechnung übertragen.")

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

    Case $Umbenennung
    $Rechnungsnr = (GUICtrlRead($Input7))
    $Auftragsnr = (GUICtrlRead($Input8))
    FileMove("Bericht.doc", $Auftragsnr & ".doc")
    FileMove("Rechnung.xls", $Rechnungsnr & ".xls")

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

    ;In Excel übertragen fertig---------------------------------

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

    ; Auftraggeber Vorlagen --------------------------------------------------------------------

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

    ; 1. Firma Vorlagen -------------------------------------

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

    Case $Alfred
    GUICtrlSetData($Input4, "Alfred - [geändert]")
    GUICtrlSetData($Input5, "Beispiel Straße - [geändert]")
    GUICtrlSetData($Input6, "Beispiel plz ort - [geändert]")

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

    Case $Hans
    GUICtrlSetData($Input4, "Hans - [geändert]")
    GUICtrlSetData($Input5, "Beispiel Straße - [geändert]")
    GUICtrlSetData($Input6, "Beispiel plz ort - [geändert]")

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

    Case $3
    GUICtrlSetData($Input4, "Autoit is cool - [geändert]")
    GUICtrlSetData($Input5, "AutoIt-Straße 3 - [geändert]")
    GUICtrlSetData($Input6, "33333 AutoIt - [geändert]")

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

    Case $4
    GUICtrlSetData($Input4, "Beispiel Name - [geändert]")
    GUICtrlSetData($Input5, "Beispiel Straße - [geändert]")
    GUICtrlSetData($Input6, "Beispiel plz ort - [geändert]")

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

    Case $5
    GUICtrlSetData($Input4, "Beispiel Name - [geändert]")
    GUICtrlSetData($Input5, "Beispiel Straße - [geändert]")
    GUICtrlSetData($Input6, "Beispiel plz ort - [geändert]")

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

    Case $6
    GUICtrlSetData($Input4, "Beispiel Name - [geändert]")
    GUICtrlSetData($Input5, "Beispiel Straße - [geändert]")
    GUICtrlSetData($Input6, "Beispiel plz ort - [geändert]")

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

    Case $7
    GUICtrlSetData($Input4, "Beispiel Name - [geändert]")
    GUICtrlSetData($Input5, "Beispiel Straße - [geändert]")
    GUICtrlSetData($Input6, "Beispiel plz ort - [geändert]")

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

    Case $8
    GUICtrlSetData($Input4, "Beispiel Name - [geändert]")
    GUICtrlSetData($Input5, "Beispiel Straße - [geändert]")
    GUICtrlSetData($Input6, "Beispiel plz ort - [geändert]")

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

    Case $9
    GUICtrlSetData($Input4, "Beispiel Name - [geändert]")
    GUICtrlSetData($Input5, "Beispiel Straße - [geändert]")
    GUICtrlSetData($Input6, "Beispiel plz ort - [geändert]")

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

    Case $10
    GUICtrlSetData($Input4, "Beispiel Name - [geändert]")
    GUICtrlSetData($Input5, "Beispiel Straße - [geändert]")
    GUICtrlSetData($Input6, "Beispiel plz ort - [geändert]")

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

    ; 2. Hausverwaltung Vorlagen -----------------------------------

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

    ; Hier hab ich noch ~50 Adressen ....

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

    ; Auftraggeber Vorlagen fertig--------------------------------------------------------------

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

    Case $Inf

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

    MsgBox(64, "Info", "Updates:" & @CRLF &
    "---------------------------------------------------------------------------"
    & @CRLF & " |" & @CRLF &
    " | Version 1.0" & @CRLF &
    " | - Dateneingabe.exe funktioniert" & @CRLF
    & " |" & @CRLF & "
    | - - - - - - - - - - - - - - - - - - - - - - - - - " & @CRLF & " |"
    & @CRLF & " | Version 2.0" & @CRLF &
    " | - mehrere Auftraggeber eingespeichert" &
    @CRLF & " | - Hilfe hinzugefügt" & @CRLF
    & " |" & @CRLF & "
    | - - - - - - - - - - - - - - - - - - - - - - - - - " & @CRLF & " |"
    & @CRLF & " | Version 2.1" & @CRLF &
    " | - Dateneingabe wartet bis Dokument geöffnet ist"
    & @CRLF & " | - Objekt kann gleich
    Auftraggeber sein" & @CRLF & " | - breitere
    Felder + Uhrzeit hinzugefügt" & @CRLF & " | -
    Messbericht und Rechnung nicht mehr nötig" & @CRLF &
    " | " & @CRLF & "
    | - - - - - - - - - - - - - - - - - - - - - - - - - " & @CRLF & " |"
    & @CRLF & " | Version 2.2" & @CRLF &
    " | - Aufftraggeber ergänzt " & @CRLF &
    " |" & @CRLF & "
    | - - - - - - - - - - - - - - - - - - - - - - - - - " & @CRLF & " |"
    & @CRLF & " | Version 2.3" & @CRLF &
    " | - Windows 7 kompatibel" & @CRLF &
    " |" & @CRLF & "
    | - - - - - - - - - - - - - - - - - - - - - - - - - " & @CRLF & " |"
    & @CRLF & " | Version 2.4" & @CRLF &
    " |" & @CRLF & " | -
    automatische Umbennung der Dokumente" & @CRLF &
    " | - Mail-Text " & @CRLF &
    " | " & @CRLF & "
    | - - - - - - - - - - - - - - - - - - - - - - - - - " & @CRLF & " |"
    & @CRLF & " | Version 3.0" & @CRLF &
    " |" & @CRLF & " | -
    Fahrtweg In GoogleMaps berechnen" & @CRLF & "
    | - Dauer des Auftrages durch Slider einstellbar" & @CRLF &
    " | " & @CRLF & "
    | - - - - - - - - - - - - - - - - - - - - - - - - - " & @CRLF & "" & @CRLF & ""
    & @CRLF & "" & @CRLF & "Programmiert von Simulac")

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

    Case $Hilfe

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

    MsgBox(64, "Hilfe", "Tastenkürzel:" & @CRLF & "" & @CRLF
    & " F2 - Bildgröße in Word anpassen" & @CRLF & " F3
    - Mailtext für Rechnung")

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

    EndSwitch
    WEnd

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

    Func bildAnpassen()
    WinWaitActive( "Bericht.doc [Kompatibilitätsmodus] - Microsoft Word","")
    MouseClick("left",1150,70,1)
    Send ("5,7")
    Send ("{ENTER}")
    MsgBox ( 0, "Bild", "Bildgröße geändert!" , 0.5)
    EndFunc

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

    Func mail()
    Send ("Sehr geehrte Damen und Herren,")
    Send ("{ENTER}")
    Send ("{ENTER}")
    Send ("{ENTER}")
    Send ("bitte beachten Sie, dass die Rechnung auf diesem Weg übermittelt wird und damit als zugesandt gilt.")
    Send ("{ENTER}")
    Send ("Eine postalische Nachsendung der Rechnung erfolgt nicht.")
    Send ("{ENTER}")
    Send ("{ENTER}")
    Send ("{ENTER}")
    Send ("mit freundlichen Grüßen")
    Send ("{ENTER}")
    Send ("{ENTER}")
    Send ("Name der Firma - [geändert]")
    EndFunc

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

    ; $erlaubt="0123456789"
    ; $input=guictrlread($inputfeld)
    ; for $i=1 to stringlen($input)
    ; if not stringinstr($erlaubt,stringmid($input,$i,1)) then
    ; $input=stringreplace($input,stringmid($input,$i,1),"") ; Löscht alle unbekannte Zeichen...
    ; endif
    ; next
    ; if $inputfeld<>$input then guictrlsetdata(§inputfeld,$input)

    [/autoit]
  • Jo danke BadBunny. Das war der Fehler
    Die Hinweise von Scite waren ja mal super. Da wäre ich niemals darauf gekommen die Func´s da rauszunehmen :cursing:

    Brauche ich auch diese beiden oder können die raus?

    [autoit]


    #include <GUIConstants.au3>
    #include <Misc.au3>

    [/autoit]

    das Excel inclde kann ja raus!

  • @Name:

    hab jetzt erst deinen ersten Post gesehen
    Erstmal diese MsgBox funktioniert ganz normal. da gibt es keine Fehler.
    Das wurde hier nur so formartiert als ich es hier in den Editor hereinkopiert habe!

    Ich danke dir für den übersichtlichen Quellcode! ;)

    Jetzt funzt alles!