_MultiFIleCopy - Unerwartetes Problem

  • Hallo,

    vor einigen Monaten habe ich für einen Kunden ein Programm geschrieben, dass ganz einfach die Filme seines Camcorders auf den PC überträgt. Er hat sich einen neuen gekauft und ich musste das Programm ein bisschen abändernb. An sich habe ich nur 2 Zeilen ausgetauscht, da nun eine andere Quelle seitens des Laufwerkbuchstabens vorliegt.

    Erst einmal das Skript:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=D:\Compile\Kamera-Filme-Kopierer.exe
    #AutoIt3Wrapper_UseUpx=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <_MultiFileCopy.au3>
    #include <String.au3>
    #include <Misc.au3>
    Global $strFiles = '', $strSize = 0
    #Region ### START Koda GUI section ###
    $Form1 = GUICreate("Film-Kopierer", 413, 309, -1, -1)
    $Label1 = GUICtrlCreateLabel("1. Name des Ordners:", 88, 32, 240, 33)
    GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif")
    $Input1 = GUICtrlCreateInput("", 144, 80, 121, 21)
    $Label2 = GUICtrlCreateLabel("2. Auf Kopieren klicken:", 88, 136, 255, 33)
    GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Kopieren", 112, 192, 201, 57, $WS_GROUP)
    GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $Drive = IniRead("Einstellungen.ini", "Buchstaben", "1", "Error")
    $Drive2 = IniRead("Einstellungen.ini", "Buchstaben", "2", "Error")
    ;~ MsgBox(0, "", $Drive&" "&$Drive2)
    If $Drive = "Error" Then
    MsgBox(0, "Fehler", "Das Programm konnte die Laufwerkbuchstaben nicht auslesen!")
    Exit
    EndIf
    If $Drive2 = "Error" Then
    MsgBox(0, "Fehler", "Das Programm konnte die Laufwerkbuchstaben nicht auslesen!")
    Exit
    EndIf
    MsgBox(0,"Hier", "Hier")
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $SourcePath = $Drive&":\PRIVATE\AVCHD\BDMV\STREAM\"
    $SourcePath2 = $Drive2&":\PRIVATE\AVCHD\BDMV\STREAM\"
    $DestinationPath = @DesktopDir&"\"&GUICtrlRead($Input1)
    $Copy = _MultiFileCopy($SourcePath, $DestinationPath, False)
    If Not IsArray($Copy) Then
    MsgBox (0, "Fehler", "Leider war der Vorgang nicht erfolgreich.")
    FileDelete ($SourcePath&"!Copy.mfc")
    Exit
    Else
    MsgBox (0, "Erfolg", "Der Kopiervorgang wurde erfolgreich beendet.")
    FileDelete ($SourcePath&"!copydata.mfc")
    Exit
    EndIf
    $Copy2 = _MultiFileCopy($SourcePath2, $DestinationPath, False)
    If Not IsArray($Copy2) then
    MsgBox(0, "Fehler", "Leider war der Vorgang nicht erfolgreich.")
    FileDelete($SourcePath2&"!copydata.mfc")
    Exit
    Else
    MsgBox (0, "Erfolg", "Der Kopiervorgang wurde erfolgreich beendet.")
    FileDelete ($SourcePath&"!copydata.mfc")
    Exit
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Leider klappt es momentan einfach nicht mehr.
    AutoIt ist nicht mehr in der Lage mit _MultiFileCopy zu arbeiten.

    Innerhalb der UDF kommt es zu Fehlern!

    Wieso?

  • Also OrganizeIncludes sagt das in der MultiFileCopy "WindowsConstants.au3" als include fehlt. Sieht so aus als wäre das ganze mit einer älteren Autoitversion erstellt worden. Daher kann es sein das dort Befehle drin sind die so nichtmehr existieren.

    z.b. wird da eine Funktion namens "_StringAddThousandsSep" aufgerufen die schon 2009 aus Autoit entfernt wurde.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (2. Mai 2012 um 12:51)

  • Ich fass es nicht!
    Nach dem #include hat alles geklappt!

    Tausend dank für deine Hilfe!