1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. kayes

Beiträge von kayes

  • Tool zum verschieben von Dateien

    • kayes
    • 5. Mai 2019 um 14:54

    Code, so far.....

    C
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <TreeViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <FileConstants.au3>
    #include <Array.au3>
    #include <ColorConstants.au3>
    ;
    ; ==============================================================================
    ; Projekt       : Daten verschieben
    ; bearbeitet am : 05.05.2019
    ; ==============================================================================
    ; Danksagungen  :
    ; Erstellt unter Mithilfe aus dem autoit.de-Forum von :
    ; @Musashi, @BugFix, @autoiter, @alpines, @Code-Jack, @zeitriss  usw.
    ; ==============================================================================
    ;  Variablendeklaration
    ;
    Global $g_sPath_Source = "F:\TESTUMGEBUNG\Ursprungsdaten"
    Global $g_aLV_Folder[0][2]
    #GUI Start
    $Form1_1 = GUICreate("Daten verschieben (c) Kayes", 615, 438, 250, 284)
    $Radio1 = GUICtrlCreateRadio("DATA 1", 16, 48, 70, 17)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle(-1), "wstr", "Explorer", "wstr", 0) ; _WinAPI_SetWindowTheme($hWnd, $sName = Default, $sList = Default)
    $Radio2 = GUICtrlCreateRadio("DATA 2", 104, 48, 70, 17)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle(-1), "wstr", "Explorer", "wstr", 0) ; _WinAPI_SetWindowTheme($hWnd, $sName = Default, $sList = Default)
    _SetRadioColor()
    $projektname = GUICtrlCreateInput("19", 208, 40, 281, 32)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    Global $g_idLV_SelectFolder = GUICtrlCreateListView("Projekt", 20, 100, 575, 280, $LVS_LIST, $LVS_EX_CHECKBOXES)
    $aktualisieren = GUICtrlCreateButton("Aktualisieren", 20, 392, 120, 33)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $verschieben = GUICtrlCreateButton("Verschieben", 475, 392, 120, 33)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $umkehren = GUICtrlCreateButton("Auswahl umkehren", 323, 392, 120, 33)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $amarkieren = GUICtrlCreateButton("Alles markieren", 172, 392, 120, 33)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #Ende GUI
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $aktualisieren
                aktualisieren()
            Case $verschieben
                MoveFiles()
            Case $radio1
                _SetRadioColor()
            Case $radio2
                _SetRechnerColor()
            Case $umkehren
                 umkehren()
              Case $amarkieren
                 markieren()
            Case $GUI_EVENT_CLOSE
                Exit
        EndSwitch
    WEnd
    Func Event_Button_SelectInv(); Invertiert die Auswahl des ListView
       Local $iState
       GUICtrlSetState($g_idLV_SelectFolder, $GUI_HIDE)
       For $i = 0 to UBound($g_aLV_Folder) -1
          $iState = GUICtrlRead($g_aLV_Folder[$i][1], 1)
          If BitAND($iState, $GUI_CHECKED) Then
             GUICtrlSetState($g_aLV_Folder[$i][1], $GUI_UNCHECKED)
          Else
             GUICtrlSetState($g_aLV_Folder[$i][1], $GUI_CHECKED)
          EndIf
       Next
       GUICtrlSetState($g_idLV_SelectFolder, $GUI_SHOW)
    EndFunc
    Func Event_Button_Start(); Listet die ausgewählten Projekte auf und ruft CopyProject() auf
       If Not CheckFolder() Then Return
       GUICtrlSetState($g_idButton_Start, $GUI_DISABLE)
       GUICtrlSetData($g_idButton_Start, "Arbeitet")
       Local $aFolderList[UBound($g_aLV_Folder)][2]
       Local $iCounter = 0
       For $i = 0 to UBound($g_aLV_Folder) -1
          If BitAND(GUICtrlRead($g_aLV_Folder[$i][1], 1), $GUI_CHECKED) Then
          $aFilesList[$iCounter][0] = $g_aLV_Files[$i][0]
          $aFilesList[$iCounter][1] = $g_aLV_Files[$i][1]
          $iCounter += 1
          EndIf
       Next
       ReDim  $aFilesList[$iCounter][2]
       CopyProject($aFilesList, $g_sPath_Source, $g_sPath_Dest)
       GUICtrlSetState($g_idButton_Start, $GUI_ENABLE)
       GUICtrlSetData($g_idButton_Start, "Kopieren")
    EndFunc
    Func Event_Button_Source(); Auswählen des Quellordners über den Benützer
       Local $sNewPath = FileSelectFolder("Bitte den Projekt-Ordner wählen", $g_sPath_Source)
       If @error Then Return
       $g_sPath_Source = $sNewPath
       GUICtrlSetData($g_idInput_Path_Source, $sNewPath)
       LoadFilesInListView($g_sPath_Source)
       GUICtrlSetState($g_idButton_Save, $GUI_ENABLE)
    EndFunc
    Func Event_Close()
       Exit
    EndFunc
    Func LoadFilesInListView($sPath); Listet die Projekte aus dem Quellordner auf, wenn sie dem Schema entsprechenden.
       For $i = 0 to UBound($g_aLV_Folder) -1
          $g_aLV_Files[$i][0] = ""
          GUICtrlDelete($g_aLV_Folder[$i][1])
       Next
       Local $aFiles = _FileListToArray($sPath, "*", $FLTA_FILES, False)
       If Not IsArray($aFiles) Then
          ReDim $g_aLV_Files[0][2]
          Return
       EndIf
       Local $iCounter = 0
       ReDim $g_aLV_Files[ $aFiles[0] ][2]
       For $i = 1 to $aFiles[0]
          If StringRegExp($aFiles[$i], "\d\d\d\d....") Then
             $g_aLV_Files[$iCounter][0] = $aFolder[$i]
             $g_aLV_Files[$iCounter][1] = GUICtrlCreateListViewItem($aFiles[$i], $g_idLV_SelectFiles)
             $iCounter += 1
          EndIf
       Next
       ReDim $g_aLV_Files[ $iCounter ][2]
    EndFunc
    
    Func movefiles()
        ;Prüfung der Radios und setzen der entsprechende Zielvariablen
        If GUICtrlRead($radio1) = $GUI_CHECKED Then $dest = "\DATA1"
        If GUICtrlRead($radio2) = $GUI_CHECKED Then $dest = "\DATA2"
            Local $source =
            Return
     EndFunc   ;==>movefiles
    
    ; Farbe für aktiven Radiobutton setzen :
    Func _SetRadioColor()
        If GUICtrlRead($radio1) = $GUI_CHECKED Then
            GUICtrlSetColor($rradio1, $COLOR_RED)
        Else
            GUICtrlSetColor($radio1, $COLOR_BLACK)
        EndIf
        If GUICtrlRead($radio2) = $GUI_CHECKED Then
            GUICtrlSetColor($radio2, $COLOR_RED)
        Else
            GUICtrlSetColor($radio2, $COLOR_BLACK)
        EndIf
      EndFunc   ;==>_SetRadioColor
    Alles anzeigen
  • Tool zum verschieben von Dateien

    • kayes
    • 5. Mai 2019 um 10:28


    @Zeitriss


    Hallo Zeitriss, kannst du dich noch an das Script erinnern?




    Kopierhilfe

    Dein Script von damals soll in Teilen wiederverwendet werden.

    Wie passe ich einen Teil an, das nur Dateien und nicht Ordner im Listview angezeigt wird?

  • Tool zum verschieben von Dateien

    • kayes
    • 5. Mai 2019 um 08:45
    Zitat

    Benutze ich selbst, um Dateien zu synchronisieren.

    Ich möchte aber nicht synchronisieren sondern Daten verschieben um Platz zu schaffen für die nächsten Daten.

  • Tool zum verschieben von Dateien

    • kayes
    • 4. Mai 2019 um 11:59

    Hallo Zusammen!

    Folgende Konstellation:

    Wir laden in ein nicht veränderbares Verzeichnis Dateien herunter. Hierbei handelt es sich um verschiedene Dateitypen.

    Diese Dateien sollen über ein Tool weiter verschoben werden in ein Projektverzeichnis.

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

    In dem weißen Feld soll eine Auflistung der Dateien aus dem Stammverzeichnis mit Checkboxen erscheinen.

    Diese Dateien kann ich entweder einfach selektieren oder gesamt (Alles markieren und Auswahl umkehren). Die selektierten Dateien sollen in ein Unterverzeichnis

    verschoben werden. Das Unterverzeichnis wird über die Radios DATA 1 und DATA 2 gewählt. In der Inputbox wird das Projekt eingetragen unter dem die Unterverzeichnisse liegen.

    Die Buttons unten sollten sich eigentlich selbst erklären.

    Ich habe versucht, aus 2 hier erstellten Scripten ein neues zusammen zu basteln. Hat aber nicht so gut funktioniert.

    Vorschläge?

  • Kopiertool

    • kayes
    • 30. Januar 2019 um 11:24

    Hallo @Musashi,

    Es soll das GUI Design von SkriptKayes übernommen werden.

    d. h. der Pfeil <= wird ersetzt durch das Listview.

    Das SkriptZeitriss liest den Inhalt eines bestimmten Ordners aus. Jedes Projekt hat eine Checkbox die angehakt werden kann.

    Grundlage für Quelle und Ziel ist der Inhalt einer ini-Datei. Diese ini wird ersetzt durch das Array aus SkriptKayes. Über die Radios soll der entsprechende Quellordner für die Liste eingestellt werden.

    Der Zielordener bleibt für alle 3 Aussendienstrechner gleich.

    Die Buttons "Auswahl umkehren", "Aktualisieren" und "Kopieren" erklären sich selbst.

    Beim kopieren erfolgt eine Kontrolle, der Projektname erscheint grün für erfolgreiches kopieren und rot bei fehlgeschlagen. Diese Einfärbung kann über Färbung ent. wieder auf schwarz gesetzt werden.

    Unser bisheriges Skript ist für das Kopieren SERVER auf RECHNERx verantwortlich.

    Das SkriptZeitriss war bisher für das Kopieren RECHNERx auf SERVER verantwortlich und ersetzt damit den 2. Pfeil.

    Ich hoffe, ich habe etwas Licht ins Dunkle gebracht.

  • Kopiertool

    • kayes
    • 29. Januar 2019 um 20:14

    Hallo,

    die GUI und den ersten Teil habe ich in die neue Version übertragen. Was mir noch fehlt ist das implementieren des zweites Scripts:

    Teil Eins:

    C
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <FileConstants.au3>
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ColorConstants.au3>
    #include <File.au3>
    #include <ListViewConstants.au3>
    #include <TreeViewConstants.au3>
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=REORG.ico
    #AutoIt3Wrapper_UseX64 = N
    #AutoIt3Wrapper_UseUpx = N ; interne UPX Komprimierung ausschalten
    #AutoIt3Wrapper_Res_SaveSource = N
    #AutoIt3Wrapper_Res_Description = Kopiertool
    #AutoIt3Wrapper_Res_Fileversion = 1.0.0.5
    #AutoIt3Wrapper_Res_LegalCopyright = 2018 by kayes
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;
    ; ==============================================================================
    ; Projekt       : Kopiertool
    ; bearbeitet am : 19.12.2018
    ; ==============================================================================
    ; Danksagungen  :
    ; Erstellt unter Mithilfe aus dem autoit.de-Forum von :
    ; @Musashi,@Zeitriss, @BugFix, @autoiter, @alpines, @Code-Jack  usw.
    ; ==============================================================================
    ; Changelog     :
    ; Setzen der Pfade für Quelle und Ziel
    ; 1. Versuch Kopierbefehl
    ; Variable $jjjj definiert und aus dem Kopierbefehl herausgenommen
    ; Wrapperanweisungen und Kommentarbereich hinzugefügt
    ; ==============================================================================
    ;  Variablendeklaration
    ;
    Global $download
    Global $upload
    Global $rechner1
    Global $rechner2
    Global $rechner3
    Global $source
    Global $dest
    Global $aSourceDest = [["F:\TESTUMGEBUNG\RECHNER1\Daten\", "F:\TESTUMGEBUNG\RECHNER1\Daten\"], _
                            ["F:\TESTUMGEBUNG\RECHNER2\Daten\", "F:\TESTUMGEBUNG\RECHNER2\Daten\"], _
                            ["F:\TESTUMGEBUNG\RECHNER3\Daten\", "F:\TESTUMGEBUNG\RECHNER3\Daten\"], _
                            ["F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\", "F:\TESTUMGEBUNG\SERVER\Daten\Dokumente\Aussendienst\"]]
    Local $jjjj
    $Form1 = GUICreate("Datenaustausch AD PCs - Server  (c) Kayes", 615, 486, 218, 211)
    Opt("GUIResizeMode", BitOR($GUI_DOCKTOP, $GUI_DOCKLEFT, $GUI_DOCKSIZE))
    ; GUI Dateiliste
    Global $g_idLV_SelectFolder = GUICtrlCreateListView("Projekt", 32, 128, 553, 279, $LVS_LIST, $LVS_EX_CHECKBOXES)
    Opt("GUIResizeMode", BitOR($GUI_DOCKRIGHT, $GUI_DOCKBOTTOM, $GUI_DOCKSIZE))
    ; Auswahl des Rechners
    $rechner1 = GUICtrlCreateRadio("Rechner 1", 32, 20, 161, 25)
    GUICtrlSetFont(-1, 16, 400, 0, "Arial Rounded MT Bold")
    ;GUICtrlSetColor(-1, 0xFF0000)
    DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle(-1), "wstr", "Explorer", "wstr", 0) ; _WinAPI_SetWindowTheme($hWnd, $sName = Default, $sList = Default)
    $rechner2 = GUICtrlCreateRadio("Rechner 2", 236, 20, 161, 25)
    GUICtrlSetFont(-1, 16, 400, 0, "Arial Rounded MT Bold")
    DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle(-1), "wstr", "Explorer", "wstr", 0) ; _WinAPI_SetWindowTheme($hWnd, $sName = Default, $sList = Default)
    $rechner3 = GUICtrlCreateRadio("Rechner 3", 452, 20, 161, 25)
    GUICtrlSetFont(-1, 16, 400, 0, "Arial Rounded MT Bold")
    DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle(-1), "wstr", "Explorer", "wstr", 0) ; _WinAPI_SetWindowTheme($hWnd, $sName = Default, $sList = Default)
    _SetRechnerColor()
    ; GUI Kopierbutton
    Global $Projektdown
    Global $idEditProjektDown = GUICtrlCreateEdit("", 32, 72, 209, 32, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
    GUICtrlSetData($idEditProjektDown, StringRight(@YEAR, 2))
    GUICtrlSetFont($idEditProjektDown, 16, 400, 0, "Arial Rounded MT Bold")
    $download = GUICtrlCreateButton("=>", 296, 72, 57, 33)
    GUICtrlSetFont(-1, 18, 400, 0, "Arial Rounded MT Bold")
    $Label1 = GUICtrlCreateLabel("Tablet", 400, 72, 67, 28, $SS_CENTER)
    GUICtrlSetFont(-1, 16, 400, 0, "Arial Rounded MT Bold")
    Global $g_idButton_ResetColor = GUICtrlCreateButton("Färbung entf.", 32, 440, 113, 25)
    Global $g_idButton_Start = GUICtrlCreateButton("Kopieren", 472, 440, 113, 25)
    Global $g_idButton_SelectInv = GUICtrlCreateButton("Auswahl umkehren", 176, 440, 113, 25)
    $Button5 = GUICtrlCreateButton("Aktualisieren", 320, 440, 113, 25)
    GUISetState(@SW_SHOW)
    ;==============================================================================
    ;
    ; Auslösen der jeweiligen Funktion über die beiden Buttons Download und Upload
    ;
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $download
                copydown()
            Case $rechner1
                _SetRechnerColor()
            Case $rechner2
                _SetRechnerColor()
            Case $rechner3
                _SetRechnerColor()
            Case $GUI_EVENT_CLOSE
                Exit
        EndSwitch
    WEnd
    
    ;
     ; Erste Funktion Kopieren von Server auf Rechner $Projektdown
     ;
     Func copydown()
        ;Prüfung der Radios und setzen der entsprechende Zielvariablen
        If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $dest = $aSourceDest [0] [1]
        If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $dest = $aSourceDest [1] [1]
        If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $dest = $aSourceDest [2] [1]
         local $source = $aSourceDest [3] [0]
    
    ;Kopierbefehl mit der $SourceDest [3] [0] und der $dest
    ;
    Local $jjjjdown = "20" & StringLeft(GUICtrlRead($idEditProjektDown), 2)
    Local $prodown = GUICtrlRead($idEditProjektDown)
    
    ConsoleWrite ('< $Projektdown = ' & $Projektdown & @CRLF)
    ConsoleWrite ($source & $jjjjdown & "\" & $prodown & "\Berechnungen" & @CRLF)
    ConsoleWrite ($dest & $prodown & "\" & @CRLF)
    Local $CopySuccess
    $CopySuccess = DirCopy (($source & $jjjjdown & "\" & $prodown & "\Berechnungen"), ($dest & $prodown & "\Berechnungen"), $FC_OVERWRITE)
    ConsoleWrite('< DirCopy = ' & $CopySuccess  & @CRLF)
    If Not $CopySuccess Then
        MsgBox(16, "Ergebnis von DirCopy : ", "Die Kopieraktion ist fehlgeschlagen ! ")
        Else
            MsgBox(64, "Ergebnis von DirCopy : ", "Die Kopieraktion war erfolgreich ! ")
    EndIf
    
    ;DirCopy (($source & $jjjjdown & "\" & $prodown & "\Berechnungen"), ($dest & $jjjjdown & "\" & $prodown & "\Berechnungen"), $FC_OVERWRITE)
    Return
     EndFunc
    ;
    ; Farbe für aktiven Radiobutton des Rechners setzen :
    Func _SetRechnerColor()
        If GUICtrlRead($rechner1) = $GUI_CHECKED Then
            GUICtrlSetColor($rechner1, $COLOR_RED)
        Else
            GUICtrlSetColor($rechner1, $COLOR_BLACK)
        EndIf
        If GUICtrlRead($rechner2) = $GUI_CHECKED Then
            GUICtrlSetColor($rechner2, $COLOR_RED)
        Else
            GUICtrlSetColor($rechner2, $COLOR_BLACK)
        EndIf
        If GUICtrlRead($rechner3) = $GUI_CHECKED Then
            GUICtrlSetColor($rechner3, $COLOR_RED)
        Else
            GUICtrlSetColor($rechner3, $COLOR_BLACK)
        EndIf
     EndFunc   ;==>_SetRechnerColor
     ;
    Alles anzeigen

    Hier Script 2:

    C
    Opt("GUIOnEventMode", 1)
    #include <File.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <TreeViewConstants.au3>
    #include <WindowsConstants.au3>
    Global $g_sPath_Ini = @scriptdir & "\Settings.ini"
    Global $g_sPath_Source = IniRead($g_sPath_Ini, "Path", "Source", "E:\Daten")
    Global $g_sPath_Dest = IniRead($g_sPath_Ini, "Path", "Dest", "F:\Dokumente\Aussendienst")
    Global $g_aLV_Folder[0][2]
    Global $g_hGUI = GUICreate("Projekt Kopieren", 500, 500, -1, -1, $WS_SIZEBOX)
    Opt("GUIResizeMode", BitOR($GUI_DOCKTOP, $GUI_DOCKLEFT, $GUI_DOCKSIZE))
    Global $g_idLV_SelectFolder = GUICtrlCreateListView("Projekt", 5, 100, 490, 340, $LVS_LIST, $LVS_EX_CHECKBOXES)
    Opt("GUIResizeMode", BitOR($GUI_DOCKRIGHT, $GUI_DOCKBOTTOM, $GUI_DOCKSIZE))
    Global $g_idButton_ResetColor = GUICtrlCreateButton("Färbung entf.", 10, 450, 90, 22)
    Global $g_idButton_SelectInv = GUICtrlCreateButton("Auswahl umkehren", 110, 450, 110, 22)
    Global $g_idButton_Save = GUICtrlCreateButton("Pfade Speichern", 230, 450, 150, 22)
    GUICtrlSetState($g_idButton_Save, $GUI_DISABLE)
    Global $g_idButton_Start = GUICtrlCreateButton("Kopieren", 390, 450, 100, 22)
    GUICtrlSetOnEvent($g_idButton_ResetColor, "Event_Button_ResetColor")
    GUICtrlSetOnEvent($g_idButton_SelectInv, "Event_Button_SelectInv")
    GUICtrlSetOnEvent($g_idButton_Save, "Event_Button_Save")
    GUICtrlSetOnEvent($g_idButton_Start, "Event_Button_Start")
    GUISetOnEvent($GUI_EVENT_CLOSE, "Event_Close")
    LoadFolderInListView($g_sPath_Source)
    GUISetState(1,$g_hGUI)
    CheckFolder()
    While 1
       sleep(1000)
    WEnd
    Func CopyProject($aFolder, $sPathSource, $sPathTarget); Übernimmt die eigentliche Kopierarbeit
       Local $sFolderSource, $sFolderTarget, $sFilesFail = ""
       For $i = 0 to UBound($aFolder) -1
          GUICtrlSetColor($aFolder[$i][1], 0x0000FF)
          $sFolderSource = $sPathSource & "\" & $aFolder[$i][0] & "\Dokument-Explorer\Berechnungen"
          $sFolderTarget = $sPathTarget & "\" & StringLeft($aFolder[$i][0], 4) & "\" & StringTrimLeft($aFolder[$i][0], 2) & "\Berechnungen"
          ConsoleWrite($sFolderSource & " --> COPY --> " & $sFolderTarget & @crlf)
          DirCreate($sFolderTarget)
          If DirCopy($sFolderSource,  $sFolderTarget, $FC_OVERWRITE) Then
             GUICtrlSetColor($aFolder[$i][1], 0x00FF00)
             GUICtrlSetState($aFolder[$i][1], $GUI_UNCHECKED)
          Else
             $sFilesFail &= $sFolderSource & @crlf & @crlf
             GUICtrlSetColor($aFolder[$i][1], 0xFF0000)
          EndIf
       Next
       If $sFilesFail <> "" Then MsgBox(16, "Fehler", "Folge Dateien konnten nicht kopiert werden: " & @crlf & @crlf & $sFilesFail)
    EndFunc
    Func CheckFolder(); Überprüft ob die Ordner ereichbar sind
       Local $bReady = True
       If Not FileExists($g_sPath_Source) Then
          $bReady = False
          MsgBox(16,"Fehler", "Quell-Ordner konnte nicht gefunden werden!")
       EndIf
       If Not FileExists($g_sPath_Dest) Then
          $bReady = False
          MsgBox(16,"Fehler", "Ziel-Ordner konnte nicht gefunden werden!")
       EndIf
       Return $bReady
    EndFunc
    Func Event_Button_Dest(); Auswählen des Zielordners über den Benützer
       Local $sNewPath = FileSelectFolder("Bitte den Projekt-Ordner wählen", $g_sPath_Dest)
       If @error Then Return
       $g_sPath_Dest = $sNewPath
       GUICtrlSetData($g_idInput_Path_Dest, $sNewPath)
       GUICtrlSetState($g_idButton_Save, $GUI_ENABLE)
    EndFunc
    Func Event_Button_ResetColor(); Setzt die Einfärbug zurück
       GUICtrlSetState($g_idLV_SelectFolder, $GUI_HIDE)
       For $i = 0 to UBound($g_aLV_Folder) -1
             GUICtrlSetColor($g_aLV_Folder[$i][1], 0x000000)
       Next
       GUICtrlSetState($g_idLV_SelectFolder, $GUI_SHOW)
    EndFunc
    Func Event_Button_Save(); Speichert die Pfade in einer Inidatei
       Local $iWrite = 0
       $iWrite += IniWrite($g_sPath_Ini, "Path", "Source", $g_sPath_Source)
       $iWrite += IniWrite($g_sPath_Ini, "Path", "Dest", $g_sPath_Dest)
       If $iWrite < 2 Then
          MsgBox(16, "Error", "Speichern in Ini-Datei nicht möglich!")
          Return
       EndIf
       GUICtrlSetState($g_idButton_Save, $GUI_DISABLE)
    EndFunc
    Func Event_Button_SelectInv(); Invertiert die Auswahl des ListView
       Local $iState
       GUICtrlSetState($g_idLV_SelectFolder, $GUI_HIDE)
       For $i = 0 to UBound($g_aLV_Folder) -1
          $iState = GUICtrlRead($g_aLV_Folder[$i][1], 1)
          If BitAND($iState, $GUI_CHECKED) Then
             GUICtrlSetState($g_aLV_Folder[$i][1], $GUI_UNCHECKED)
          Else
             GUICtrlSetState($g_aLV_Folder[$i][1], $GUI_CHECKED)
          EndIf
       Next
       GUICtrlSetState($g_idLV_SelectFolder, $GUI_SHOW)
    EndFunc
    Func Event_Button_Start(); Listet die ausgewählten Projekte auf und ruft CopyProject() auf
       If Not CheckFolder() Then Return
       GUICtrlSetState($g_idButton_Start, $GUI_DISABLE)
       GUICtrlSetData($g_idButton_Start, "Arbeitet")
       Local $aFolderList[UBound($g_aLV_Folder)][2]
       Local $iCounter = 0
       For $i = 0 to UBound($g_aLV_Folder) -1
          If BitAND(GUICtrlRead($g_aLV_Folder[$i][1], 1), $GUI_CHECKED) Then
          $aFolderList[$iCounter][0] = $g_aLV_Folder[$i][0]
          $aFolderList[$iCounter][1] = $g_aLV_Folder[$i][1]
          $iCounter += 1
          EndIf
       Next
       ReDim  $aFolderList[$iCounter][2]
       CopyProject($aFolderList, $g_sPath_Source, $g_sPath_Dest)
       GUICtrlSetState($g_idButton_Start, $GUI_ENABLE)
       GUICtrlSetData($g_idButton_Start, "Kopieren")
    EndFunc
    Func Event_Button_Source(); Auswählen des Quellordners über den Benützer
       Local $sNewPath = FileSelectFolder("Bitte den Projekt-Ordner wählen", $g_sPath_Source)
       If @error Then Return
       $g_sPath_Source = $sNewPath
       GUICtrlSetData($g_idInput_Path_Source, $sNewPath)
       LoadFolderInListView($g_sPath_Source)
       GUICtrlSetState($g_idButton_Save, $GUI_ENABLE)
    EndFunc
    Func Event_Close()
       Exit
    EndFunc
    Func LoadFolderInListView($sPath); Listet die Projekte aus dem Quellordner auf, wenn sie dem Schema entsprechenden.
       For $i = 0 to UBound($g_aLV_Folder) -1
          $g_aLV_Folder[$i][0] = ""
          GUICtrlDelete($g_aLV_Folder[$i][1])
       Next
       Local $aFolder = _FileListToArray($sPath, "*", $FLTA_FOLDERS, False)
       If Not IsArray($aFolder) Then
          ReDim $g_aLV_Folder[0][2]
          Return
       EndIf
       Local $iCounter = 0
       ReDim $g_aLV_Folder[ $aFolder[0] ][2]
       For $i = 1 to $aFolder[0]
          If StringRegExp($aFolder[$i], "\d\d\d\d....") Then
             $g_aLV_Folder[$iCounter][0] = $aFolder[$i]
             $g_aLV_Folder[$iCounter][1] = GUICtrlCreateListViewItem($aFolder[$i], $g_idLV_SelectFolder)
             $iCounter += 1
          EndIf
       Next
       ReDim $g_aLV_Folder[ $iCounter ][2]
    EndFunc
    Alles anzeigen

    Könnte mir da noch jemand weiterhelfen?

  • Kopiertool

    • kayes
    • 25. Januar 2019 um 21:02

    Hallo zusammen!

    Würde sich noch einmal jemand die Mühe machen die beiden Scripte nach meinen Vorgaben zu verheiraten?

    Zitat

    die letzten 2 Tage haben nun auch meine Kollegen das Tool getestet.

    Ein Kollege nutzte wie ich ein Tool das hier im Sommer 2017 entstanden ist.

    Er hat nun den Vorschlag gemacht, diese 2 Tools miteinander zu verbinden.

    Erstmal Bilder:

    das Tool, das in diesem Thread entstand:

    &thumbnail=1


    Tool aus dem anderen Thread: siehe unten


    Also:

    - Zeile mit dem Aussendienstordner entfernen.

    - Abfrage des Ordners (Inhalt Rechner 1, wenn Radio auf Rechner 1 steht usw..)

    - Funktionalität der Kopierbefehle aus dem alten Script sicherstellen.

    Hier der Code, erstellt von Zeitriss


    C

    1. Opt("GUIOnEventMode", 1)
    2. #include <File.au3>
    3. #include <GUIConstantsEx.au3>
    4. #include <ListViewConstants.au3>
    5. #include <StaticConstants.au3>
    6. #include <TreeViewConstants.au3>
    7. #include <WindowsConstants.au3>
    8. Global $g_sPath_Ini = @scriptdir & "\Settings.ini"
    9. Global $g_sPath_Source = IniRead($g_sPath_Ini, "Path", "Source", "E:\Daten")
    10. Global $g_sPath_Dest = IniRead($g_sPath_Ini, "Path", "Dest", "F:\Dokumente\Aussendienst")
    11. Global $g_aLV_Folder[0][2]
    12. Global $g_hGUI = GUICreate("Projekt Kopieren", 500, 500, -1, -1, $WS_SIZEBOX)
    13. Opt("GUIResizeMode", BitOR($GUI_DOCKTOP, $GUI_DOCKLEFT, $GUI_DOCKSIZE))
    14. GUICtrlCreateLabel("Quellordner:", 0, 40, 70, 19, $SS_RIGHT)
    15. Global $g_idInput_Path_Source = GUICtrlCreateInput($g_sPath_Source, 80, 20, 350, 20)
    16. GUICtrlSetResizing($g_idInput_Path_Source, BitOR($GUI_DOCKLEFT, $GUI_DOCKTOP, $GUI_DOCKHEIGHT, $GUI_DOCKRIGHT))
    17. GUICtrlSetState($g_idInput_Path_Source, $GUI_DISABLE)
    18. Global $g_idButton_Path_Source = GUICtrlCreateButton("...", 435, 20, 30, 20)
    19. GUICtrlSetResizing($g_idButton_Path_Source, BitOR($GUI_DOCKTOP, $GUI_DOCKRIGHT, $GUI_DOCKSIZE))
    20. GUICtrlCreateLabel("Zielordner:", 0, 53, 70, 19, $SS_RIGHT)
    21. Global $g_idInput_Path_Dest = GUICtrlCreateInput($g_sPath_Dest, 80, 50, 350, 20)
    22. GUICtrlSetResizing($g_idInput_Path_Dest, BitOR($GUI_DOCKLEFT, $GUI_DOCKTOP, $GUI_DOCKHEIGHT, $GUI_DOCKRIGHT))
    23. GUICtrlSetState($g_idInput_Path_Dest, $GUI_DISABLE)
    24. Global $g_idButton_Path_Dest = GUICtrlCreateButton("...", 435, 50, 30, 20)
    25. GUICtrlSetResizing($g_idButton_Path_Dest, BitOR($GUI_DOCKTOP, $GUI_DOCKRIGHT, $GUI_DOCKSIZE))
    26. Opt("GUIResizeMode", $GUI_DOCKBORDERS)
    27. Global $g_idLV_SelectFolder = GUICtrlCreateListView("Projekt", 5, 100, 490, 340, $LVS_LIST, $LVS_EX_CHECKBOXES)
    28. Opt("GUIResizeMode", BitOR($GUI_DOCKRIGHT, $GUI_DOCKBOTTOM, $GUI_DOCKSIZE))
    29. Global $g_idButton_ResetColor = GUICtrlCreateButton("Färbung entf.", 10, 450, 90, 22)
    30. Global $g_idButton_SelectInv = GUICtrlCreateButton("Auswahl umkehren", 110, 450, 110, 22)
    31. Global $g_idButton_Save = GUICtrlCreateButton("Pfade Speichern", 230, 450, 150, 22)
    32. GUICtrlSetState($g_idButton_Save, $GUI_DISABLE)
    33. Global $g_idButton_Start = GUICtrlCreateButton("Kopieren", 390, 450, 100, 22)
    34. GUICtrlSetOnEvent($g_idButton_Path_Source, "Event_Button_Source")
    35. GUICtrlSetOnEvent($g_idButton_Path_Dest, "Event_Button_Dest")
    36. GUICtrlSetOnEvent($g_idButton_ResetColor, "Event_Button_ResetColor")
    37. GUICtrlSetOnEvent($g_idButton_SelectInv, "Event_Button_SelectInv")
    38. GUICtrlSetOnEvent($g_idButton_Save, "Event_Button_Save")
    39. GUICtrlSetOnEvent($g_idButton_Start, "Event_Button_Start")
    40. GUISetOnEvent($GUI_EVENT_CLOSE, "Event_Close")
    41. LoadFolderInListView($g_sPath_Source)
    42. GUISetState(1,$g_hGUI)
    43. CheckFolder()
    44. While 1
    45. sleep(1000)
    46. WEnd
    47. Func CopyProject($aFolder, $sPathSource, $sPathTarget); Übernimmt die eigentliche Kopierarbeit
    48. Local $sFolderSource, $sFolderTarget, $sFilesFail = ""
    49. For $i = 0 to UBound($aFolder) -1
    50. GUICtrlSetColor($aFolder[$i][1], 0x0000FF)
    51. $sFolderSource = $sPathSource & "\" & $aFolder[$i][0] & "\Dokument-Explorer\Berechnungen"
    52. $sFolderTarget = $sPathTarget & "\" & StringLeft($aFolder[$i][0], 4) & "\" & StringTrimLeft($aFolder[$i][0], 2) & "\Berechnungen"
    53. ConsoleWrite($sFolderSource & " --> COPY --> " & $sFolderTarget & @crlf)
    54. DirCreate($sFolderTarget)
    55. If DirCopy($sFolderSource, $sFolderTarget, $FC_OVERWRITE) Then
    56. GUICtrlSetColor($aFolder[$i][1], 0x00FF00)
    57. GUICtrlSetState($aFolder[$i][1], $GUI_UNCHECKED)
    58. Else
    59. $sFilesFail &= $sFolderSource & @crlf & @crlf
    60. GUICtrlSetColor($aFolder[$i][1], 0xFF0000)
    61. EndIf
    62. Next
    63. If $sFilesFail <> "" Then MsgBox(16, "Fehler", "Folge Dateien konnten nicht kopiert werden: " & @crlf & @crlf & $sFilesFail)
    64. EndFunc
    65. Func CheckFolder(); Überprüft ob die Ordner ereichbar sind
    66. Local $bReady = True
    67. If Not FileExists($g_sPath_Source) Then
    68. $bReady = False
    69. MsgBox(16,"Fehler", "Quell-Ordner konnte nicht gefunden werden!")
    70. EndIf
    71. If Not FileExists($g_sPath_Dest) Then
    72. $bReady = False
    73. MsgBox(16,"Fehler", "Ziel-Ordner konnte nicht gefunden werden!")
    74. EndIf
    75. Return $bReady
    76. EndFunc
    77. Func Event_Button_Dest(); Auswählen des Zielordners über den Benützer
    78. Local $sNewPath = FileSelectFolder("Bitte den Projekt-Ordner wählen", $g_sPath_Dest)
    79. If @error Then Return
    80. $g_sPath_Dest = $sNewPath
    81. GUICtrlSetData($g_idInput_Path_Dest, $sNewPath)
    82. GUICtrlSetState($g_idButton_Save, $GUI_ENABLE)
    83. EndFunc
    84. Func Event_Button_ResetColor(); Setzt die Einfärbug zurück
    85. GUICtrlSetState($g_idLV_SelectFolder, $GUI_HIDE)
    86. For $i = 0 to UBound($g_aLV_Folder) -1
    87. GUICtrlSetColor($g_aLV_Folder[$i][1], 0x000000)
    88. Next
    89. GUICtrlSetState($g_idLV_SelectFolder, $GUI_SHOW)
    90. EndFunc
    91. Func Event_Button_Save(); Speichert die Pfade in einer Inidatei
    92. Local $iWrite = 0
    93. $iWrite += IniWrite($g_sPath_Ini, "Path", "Source", $g_sPath_Source)
    94. $iWrite += IniWrite($g_sPath_Ini, "Path", "Dest", $g_sPath_Dest)
    95. If $iWrite < 2 Then
    96. MsgBox(16, "Error", "Speichern in Ini-Datei nicht möglich!")
    97. Return
    98. EndIf
    99. GUICtrlSetState($g_idButton_Save, $GUI_DISABLE)
    100. EndFunc
    101. Func Event_Button_SelectInv(); Invertiert die Auswahl des ListView
    102. Local $iState
    103. GUICtrlSetState($g_idLV_SelectFolder, $GUI_HIDE)
    104. For $i = 0 to UBound($g_aLV_Folder) -1
    105. $iState = GUICtrlRead($g_aLV_Folder[$i][1], 1)
    106. If BitAND($iState, $GUI_CHECKED) Then
    107. GUICtrlSetState($g_aLV_Folder[$i][1], $GUI_UNCHECKED)
    108. Else
    109. GUICtrlSetState($g_aLV_Folder[$i][1], $GUI_CHECKED)
    110. EndIf
    111. Next
    112. GUICtrlSetState($g_idLV_SelectFolder, $GUI_SHOW)
    113. EndFunc
    114. Func Event_Button_Start(); Listet die ausgewählten Projekte auf und ruft CopyProject() auf
    115. If Not CheckFolder() Then Return
    116. GUICtrlSetState($g_idButton_Start, $GUI_DISABLE)
    117. GUICtrlSetData($g_idButton_Start, "Arbeitet")
    118. Local $aFolderList[UBound($g_aLV_Folder)][2]
    119. Local $iCounter = 0
    120. For $i = 0 to UBound($g_aLV_Folder) -1
    121. If BitAND(GUICtrlRead($g_aLV_Folder[$i][1], 1), $GUI_CHECKED) Then
    122. $aFolderList[$iCounter][0] = $g_aLV_Folder[$i][0]
    123. $aFolderList[$iCounter][1] = $g_aLV_Folder[$i][1]
    124. $iCounter += 1
    125. EndIf
    126. Next
    127. ReDim $aFolderList[$iCounter][2]
    128. CopyProject($aFolderList, $g_sPath_Source, $g_sPath_Dest)
    129. GUICtrlSetState($g_idButton_Start, $GUI_ENABLE)
    130. GUICtrlSetData($g_idButton_Start, "Kopieren")
    131. EndFunc
    132. Func Event_Button_Source(); Auswählen des Quellordners über den Benützer
    133. Local $sNewPath = FileSelectFolder("Bitte den Projekt-Ordner wählen", $g_sPath_Source)
    134. If @error Then Return
    135. $g_sPath_Source = $sNewPath
    136. GUICtrlSetData($g_idInput_Path_Source, $sNewPath)
    137. LoadFolderInListView($g_sPath_Source)
    138. GUICtrlSetState($g_idButton_Save, $GUI_ENABLE)
    139. EndFunc
    140. Func Event_Close()
    141. Exit
    142. EndFunc
    143. Func LoadFolderInListView($sPath); Listet die Projekte aus dem Quellordner auf, wenn sie dem Schema entsprechenden.
    144. For $i = 0 to UBound($g_aLV_Folder) -1
    145. $g_aLV_Folder[$i][0] = ""
    146. GUICtrlDelete($g_aLV_Folder[$i][1])
    147. Next
    148. Local $aFolder = _FileListToArray($sPath, "*", $FLTA_FOLDERS, False)
    149. If Not IsArray($aFolder) Then
    150. ReDim $g_aLV_Folder[0][2]
    151. Return
    152. EndIf
    153. Local $iCounter = 0
    154. ReDim $g_aLV_Folder[ $aFolder[0] ][2]
    155. For $i = 1 to $aFolder[0]
    156. If StringRegExp($aFolder[$i], "\d\d\d\d....") Then
    157. $g_aLV_Folder[$iCounter][0] = $aFolder[$i]
    158. $g_aLV_Folder[$iCounter][1] = GUICtrlCreateListViewItem($aFolder[$i], $g_idLV_SelectFolder)
    159. $iCounter += 1
    160. EndIf
    161. Next
    162. ReDim $g_aLV_Folder[ $iCounter ][2]
    163. EndFunc

    Alles anzeigen

    Kann jemand diese beiden Scripts zusammenfügen?

    Alles anzeigen
  • Kopiertool

    • kayes
    • 21. Januar 2019 um 20:41

    Naja,

    letztlich geht es um die "verheiratung" von den 2 Skripten.

    Aber, alles ist gut.

    Ich hatte mir vorgenommen, selbst da tätig zu werden habe aber auch noch andere Dinge zu tun.

    Wenn ich was eingermaßen Annehmbares habe melde ich mich noch mal.

    Vielen Dank schon einmal und viel Glück bei dem anderen Projekt.

  • Kopiertool

    • kayes
    • 21. Januar 2019 um 19:46
    Zitat

    Dort werden die Dateien zwar verschoben (nicht kopiert), aber das ist nur eine einzeilige Änderung.

    Auch die festgelegten Dateitypen (.jpg .cr2) lassen sich schnell anpassen. Zudem wäre es sinnvoll, die schöne Kopierfunktion _FileCopyEx von Oscar einzubauen. Was noch fehlt ist die Auswahl der Rechner. Wie gesagt, mal sehen ob ich die nächsten Tage dazu komme.


    Gruß Musashi

    Hallo Musashi,

    bist du in der Zwischenzeit zu etwas gekommen?

    Gruß Kayes

  • Kopiertool

    • kayes
    • 12. Januar 2019 um 15:34

    Habe die Testumgebung mal auf eine andere Partition verschoben (also nicht c) - und da funktioniert das Script

  • Kopiertool

    • kayes
    • 12. Januar 2019 um 14:34

    @Musashi

    Wollte das Script ausprobieren:

    "C:\Test\FileMoveV41.au3" (147) : ==> Subscript used on non-accessible variable.:

    For $i = 1 To $aFileListJPGDest[0]

    For $i = 1 To $aFileListJPGDest^ ERROR

  • Kopiertool

    • kayes
    • 11. Januar 2019 um 21:34
    Zitat

    Es hätte vieles einfacher gemacht, wenn Du den bereits bestehenden Code von Zeitriss im Beitrag #1 deutlicher erwähnt hättest :whistling:.

    Naja, die Tools unterscheiden sich ja schon recht deutlich.

    Die Entwicklung beruht ja in erster Linie auf meinen Vorgaben. Über eine Vermischung hatte ich überhaupt nicht nachgedacht - erst der Kollege hat mich darauf gebracht.

    und ausserdem habe ich in den vergangenen Wochen ja auch ein bischen gelernt ;)

    Danke auf jeden Fall für deine Mühen.

  • Kopiertool

    • kayes
    • 11. Januar 2019 um 19:57

    Hallo,

    die letzten 2 Tage haben nun auch meine Kollegen das Tool getestet.

    Ein Kollege nutzte wie ich ein Tool das hier im Sommer 2017 entstanden ist.

    Er hat nun den Vorschlag gemacht, diese 2 Tools miteinander zu verbinden.

    Erstmal Bilder:

    das Tool, das in diesem Thread entstand:

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.


    Tool aus dem anderen Thread: siehe unten


    Also:

    - Zeile mit dem Aussendienstordner entfernen.

    - Abfrage des Ordners (Inhalt Rechner 1, wenn Radio auf Rechner 1 steht usw..)

    - Funktionalität der Kopierbefehle aus dem alten Script sicherstellen.

    Hier der Code, erstellt von Zeitriss

    C
    Opt("GUIOnEventMode", 1)
    #include <File.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <TreeViewConstants.au3>
    #include <WindowsConstants.au3>
    Global $g_sPath_Ini = @scriptdir & "\Settings.ini"
    Global $g_sPath_Source = IniRead($g_sPath_Ini, "Path", "Source", "E:\Daten")
    Global $g_sPath_Dest = IniRead($g_sPath_Ini, "Path", "Dest", "F:\Dokumente\Aussendienst")
    Global $g_aLV_Folder[0][2]
    Global $g_hGUI = GUICreate("Projekt Kopieren", 500, 500, -1, -1, $WS_SIZEBOX)
    Opt("GUIResizeMode", BitOR($GUI_DOCKTOP, $GUI_DOCKLEFT, $GUI_DOCKSIZE))
    GUICtrlCreateLabel("Quellordner:", 0, 40, 70, 19, $SS_RIGHT)
    Global $g_idInput_Path_Source = GUICtrlCreateInput($g_sPath_Source, 80, 20, 350, 20)
    GUICtrlSetResizing($g_idInput_Path_Source, BitOR($GUI_DOCKLEFT, $GUI_DOCKTOP, $GUI_DOCKHEIGHT, $GUI_DOCKRIGHT))
    GUICtrlSetState($g_idInput_Path_Source, $GUI_DISABLE)
    Global $g_idButton_Path_Source = GUICtrlCreateButton("...", 435, 20, 30, 20)
    GUICtrlSetResizing($g_idButton_Path_Source, BitOR($GUI_DOCKTOP, $GUI_DOCKRIGHT, $GUI_DOCKSIZE))
    GUICtrlCreateLabel("Zielordner:", 0, 53, 70, 19, $SS_RIGHT)
    Global $g_idInput_Path_Dest = GUICtrlCreateInput($g_sPath_Dest, 80, 50, 350, 20)
    GUICtrlSetResizing($g_idInput_Path_Dest, BitOR($GUI_DOCKLEFT, $GUI_DOCKTOP, $GUI_DOCKHEIGHT, $GUI_DOCKRIGHT))
    GUICtrlSetState($g_idInput_Path_Dest, $GUI_DISABLE)
    Global $g_idButton_Path_Dest = GUICtrlCreateButton("...", 435, 50, 30, 20)
    GUICtrlSetResizing($g_idButton_Path_Dest, BitOR($GUI_DOCKTOP, $GUI_DOCKRIGHT, $GUI_DOCKSIZE))
    Opt("GUIResizeMode", $GUI_DOCKBORDERS)
    Global $g_idLV_SelectFolder = GUICtrlCreateListView("Projekt", 5, 100, 490, 340, $LVS_LIST, $LVS_EX_CHECKBOXES)
    Opt("GUIResizeMode", BitOR($GUI_DOCKRIGHT, $GUI_DOCKBOTTOM, $GUI_DOCKSIZE))
    Global $g_idButton_ResetColor = GUICtrlCreateButton("Färbung entf.", 10, 450, 90, 22)
    Global $g_idButton_SelectInv = GUICtrlCreateButton("Auswahl umkehren", 110, 450, 110, 22)
    Global $g_idButton_Save = GUICtrlCreateButton("Pfade Speichern", 230, 450, 150, 22)
    GUICtrlSetState($g_idButton_Save, $GUI_DISABLE)
    Global $g_idButton_Start = GUICtrlCreateButton("Kopieren", 390, 450, 100, 22)
    GUICtrlSetOnEvent($g_idButton_Path_Source, "Event_Button_Source")
    GUICtrlSetOnEvent($g_idButton_Path_Dest, "Event_Button_Dest")
    GUICtrlSetOnEvent($g_idButton_ResetColor, "Event_Button_ResetColor")
    GUICtrlSetOnEvent($g_idButton_SelectInv, "Event_Button_SelectInv")
    GUICtrlSetOnEvent($g_idButton_Save, "Event_Button_Save")
    GUICtrlSetOnEvent($g_idButton_Start, "Event_Button_Start")
    GUISetOnEvent($GUI_EVENT_CLOSE, "Event_Close")
    LoadFolderInListView($g_sPath_Source)
    GUISetState(1,$g_hGUI)
    CheckFolder()
    While 1
       sleep(1000)
    WEnd
    Func CopyProject($aFolder, $sPathSource, $sPathTarget); Übernimmt die eigentliche Kopierarbeit
       Local $sFolderSource, $sFolderTarget, $sFilesFail = ""
       For $i = 0 to UBound($aFolder) -1
          GUICtrlSetColor($aFolder[$i][1], 0x0000FF)
          $sFolderSource = $sPathSource & "\" & $aFolder[$i][0] & "\Dokument-Explorer\Berechnungen"
          $sFolderTarget = $sPathTarget & "\" & StringLeft($aFolder[$i][0], 4) & "\" & StringTrimLeft($aFolder[$i][0], 2) & "\Berechnungen"
          ConsoleWrite($sFolderSource & " --> COPY --> " & $sFolderTarget & @crlf)
          DirCreate($sFolderTarget)
          If DirCopy($sFolderSource,  $sFolderTarget, $FC_OVERWRITE) Then
             GUICtrlSetColor($aFolder[$i][1], 0x00FF00)
             GUICtrlSetState($aFolder[$i][1], $GUI_UNCHECKED)
          Else
             $sFilesFail &= $sFolderSource & @crlf & @crlf
             GUICtrlSetColor($aFolder[$i][1], 0xFF0000)
          EndIf
       Next
       If $sFilesFail <> "" Then MsgBox(16, "Fehler", "Folge Dateien konnten nicht kopiert werden: " & @crlf & @crlf & $sFilesFail)
    EndFunc
    Func CheckFolder(); Überprüft ob die Ordner ereichbar sind
       Local $bReady = True
       If Not FileExists($g_sPath_Source) Then
          $bReady = False
          MsgBox(16,"Fehler", "Quell-Ordner konnte nicht gefunden werden!")
       EndIf
       If Not FileExists($g_sPath_Dest) Then
          $bReady = False
          MsgBox(16,"Fehler", "Ziel-Ordner konnte nicht gefunden werden!")
       EndIf
       Return $bReady
    EndFunc
    Func Event_Button_Dest(); Auswählen des Zielordners über den Benützer
       Local $sNewPath = FileSelectFolder("Bitte den Projekt-Ordner wählen", $g_sPath_Dest)
       If @error Then Return
       $g_sPath_Dest = $sNewPath
       GUICtrlSetData($g_idInput_Path_Dest, $sNewPath)
       GUICtrlSetState($g_idButton_Save, $GUI_ENABLE)
    EndFunc
    Func Event_Button_ResetColor(); Setzt die Einfärbug zurück
       GUICtrlSetState($g_idLV_SelectFolder, $GUI_HIDE)
       For $i = 0 to UBound($g_aLV_Folder) -1
             GUICtrlSetColor($g_aLV_Folder[$i][1], 0x000000)
       Next
       GUICtrlSetState($g_idLV_SelectFolder, $GUI_SHOW)
    EndFunc
    Func Event_Button_Save(); Speichert die Pfade in einer Inidatei
       Local $iWrite = 0
       $iWrite += IniWrite($g_sPath_Ini, "Path", "Source", $g_sPath_Source)
       $iWrite += IniWrite($g_sPath_Ini, "Path", "Dest", $g_sPath_Dest)
       If $iWrite < 2 Then
          MsgBox(16, "Error", "Speichern in Ini-Datei nicht möglich!")
          Return
       EndIf
       GUICtrlSetState($g_idButton_Save, $GUI_DISABLE)
    EndFunc
    Func Event_Button_SelectInv(); Invertiert die Auswahl des ListView
       Local $iState
       GUICtrlSetState($g_idLV_SelectFolder, $GUI_HIDE)
       For $i = 0 to UBound($g_aLV_Folder) -1
          $iState = GUICtrlRead($g_aLV_Folder[$i][1], 1)
          If BitAND($iState, $GUI_CHECKED) Then
             GUICtrlSetState($g_aLV_Folder[$i][1], $GUI_UNCHECKED)
          Else
             GUICtrlSetState($g_aLV_Folder[$i][1], $GUI_CHECKED)
          EndIf
       Next
       GUICtrlSetState($g_idLV_SelectFolder, $GUI_SHOW)
    EndFunc
    Func Event_Button_Start(); Listet die ausgewählten Projekte auf und ruft CopyProject() auf
       If Not CheckFolder() Then Return
       GUICtrlSetState($g_idButton_Start, $GUI_DISABLE)
       GUICtrlSetData($g_idButton_Start, "Arbeitet")
       Local $aFolderList[UBound($g_aLV_Folder)][2]
       Local $iCounter = 0
       For $i = 0 to UBound($g_aLV_Folder) -1
          If BitAND(GUICtrlRead($g_aLV_Folder[$i][1], 1), $GUI_CHECKED) Then
          $aFolderList[$iCounter][0] = $g_aLV_Folder[$i][0]
          $aFolderList[$iCounter][1] = $g_aLV_Folder[$i][1]
          $iCounter += 1
          EndIf
       Next
       ReDim  $aFolderList[$iCounter][2]
       CopyProject($aFolderList, $g_sPath_Source, $g_sPath_Dest)
       GUICtrlSetState($g_idButton_Start, $GUI_ENABLE)
       GUICtrlSetData($g_idButton_Start, "Kopieren")
    EndFunc
    Func Event_Button_Source(); Auswählen des Quellordners über den Benützer
       Local $sNewPath = FileSelectFolder("Bitte den Projekt-Ordner wählen", $g_sPath_Source)
       If @error Then Return
       $g_sPath_Source = $sNewPath
       GUICtrlSetData($g_idInput_Path_Source, $sNewPath)
       LoadFolderInListView($g_sPath_Source)
       GUICtrlSetState($g_idButton_Save, $GUI_ENABLE)
    EndFunc
    Func Event_Close()
       Exit
    EndFunc
    Func LoadFolderInListView($sPath); Listet die Projekte aus dem Quellordner auf, wenn sie dem Schema entsprechenden.
       For $i = 0 to UBound($g_aLV_Folder) -1
          $g_aLV_Folder[$i][0] = ""
          GUICtrlDelete($g_aLV_Folder[$i][1])
       Next
       Local $aFolder = _FileListToArray($sPath, "*", $FLTA_FOLDERS, False)
       If Not IsArray($aFolder) Then
          ReDim $g_aLV_Folder[0][2]
          Return
       EndIf
       Local $iCounter = 0
       ReDim $g_aLV_Folder[ $aFolder[0] ][2]
       For $i = 1 to $aFolder[0]
          If StringRegExp($aFolder[$i], "\d\d\d\d....") Then
             $g_aLV_Folder[$iCounter][0] = $aFolder[$i]
             $g_aLV_Folder[$iCounter][1] = GUICtrlCreateListViewItem($aFolder[$i], $g_idLV_SelectFolder)
             $iCounter += 1
          EndIf
       Next
       ReDim $g_aLV_Folder[ $iCounter ][2]
    EndFunc
    Alles anzeigen

    Kann jemand diese beiden Scripts zusammenfügen?

    Dateien

    pasted-from-clipboard.png 28,43 kB – 0 Downloads
  • Kopiertool

    • kayes
    • 9. Januar 2019 um 20:58

    1. in der Konsole wird angezeigt .... auf grün gesetzt :thumbup:

    2. XP Style? sagt mir gar nichts. Wie schalte ich den ab?

    Edit: Hab das hinter die radios gesetzt: Jetzt läuft´s !

  • Kopiertool

    • kayes
    • 9. Januar 2019 um 20:02

    Noch seltsamer: auch diese Datei zeigt nichts grünes an :/

  • Kopiertool

    • kayes
    • 9. Januar 2019 um 19:48

    :/

    habe in eine neue Datei deinen Code eingefügt:

    Der Inhalt kann nicht angezeigt werden, da du keine Berechtigung hast, diesen Inhalt zu sehen.

  • Kopiertool

    • kayes
    • 9. Januar 2019 um 19:24

    die Schrift ist und bleibt schwarz.

  • Kopiertool

    • kayes
    • 9. Januar 2019 um 19:17

    Hallo Musashi,

    die Rückmeldung funktioniert, aber mit den Farben läuft noch etwas schief.

  • Kopiertool

    • kayes
    • 8. Januar 2019 um 21:42

    So schaut es gerade aus:

    C
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <FileConstants.au3>
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=REORG.ico
    #AutoIt3Wrapper_UseX64 = N
    #AutoIt3Wrapper_UseUpx = N ; interne UPX Komprimierung ausschalten
    #AutoIt3Wrapper_Res_SaveSource = N
    #AutoIt3Wrapper_Res_Description = Kopiertool
    #AutoIt3Wrapper_Res_Fileversion = 1.0.0.5
    #AutoIt3Wrapper_Res_LegalCopyright = 2018 by kayes
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;
    ; ==============================================================================
    ; Projekt       : Kopiertool
    ; bearbeitet am : 19.12.2018
    ; ==============================================================================
    ; Danksagungen  :
    ; Erstellt unter Mithilfe aus dem autoit.de-Forum von :
    ; @Musashi, @BugFix, @autoiter, @alpines, @Code-Jack  usw.
    ; ==============================================================================
    ; Changelog     :
    ; Setzen der Pfade für Quelle und Ziel
    ; 1. Versuch Kopierbefehl
    ; Variable $jjjj definiert und aus dem Kopierbefehl herausgenommen
    ; Wrapperanweisungen und Kommentarbereich hinzugefügt
    ; ==============================================================================
    ;  Variablendeklaration
    ;
    Global $download
    Global $upload
    Global $rechner1
    Global $rechner2
    Global $rechner3
    Global $source
    Global $dest
    Global $aSourceDest = [ ["\\PANASONIC\C\Daten\", "\\PANASONIC\C\Daten\"], _
                            ["\\abkadpc\c\Daten\", "\\abkadpc\cDaten\"], _
                            ["\\ARMOR-PC\C\Projekte\", "\\ARMOR-PC\C\Projekte\"], _
                            ["F:\Daten\Dokumente\", "F:\Daten\Dokumente\Aussendienst\"]]
    Local $jjjj
    ;==============================================================================
    ; Beginn des Formulars:
    ;
    $Form1_1 = GUICreate("Datenaustausch AD PCs - Server  (c) Kayes", 592, 284, 197, 145)
    ;
    ; Eingabefeld für das Projekt was vom Server auf den Aussendienstrechner kopiert wird
    ; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
    ;
    Global $Projektdown
    Global $idEditProjektDown = GUICtrlCreateEdit("", 352, 88, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
    GUICtrlSetData($idEditProjektDown, StringRight(@YEAR, 2))
    GUICtrlSetFont($idEditProjektDown, 18, 400, 0, "MS Sans Serif")
    
    ;
    ; Eingabefeld für das Projekt was vom Aussendienstrechner auf den Server kopiert wird
    ; vorgegeben wird der Jahrgang 19, danach muss ergänzt werden auf z. B. 19D002 oder 19M003
    ;
    Global $Projektup
    Global $idEditProjektUp = GUICtrlCreateEdit("", 40, 168, 180, 40, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
    GUICtrlSetData($idEditProjektUp, StringRight(@YEAR, 2))
    GUICtrlSetFont($idEditProjektUp, 18, 400, 0, "MS Sans Serif")
    
    ;
    ; Auswahl des Aussendienstrechners
    ;
    $rechner1 = GUICtrlCreateRadio("Rechner 1", 40, 16, 140, 40)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    $rechner2 = GUICtrlCreateRadio("Rechner 2", 240, 16, 140, 40)
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    $rechner3 = GUICtrlCreateRadio("Rechner 3", 432, 16, 140, 40)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    $Label1 = GUICtrlCreateLabel("Tablet", 96, 96, 62, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Aussendienstordner", 355, 174, 192, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    ;
    ; Downloadbutton wird gesetzt
    ;
    $download = GUICtrlCreateButton("<=", 256, 96, 28, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
    ;
    ; Uploadbutton wird gesetzt
    ;
    $upload = GUICtrlCreateButton("=>", 256, 176, 28, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    ;==============================================================================
    ;
    ; Auslösen der jeweiligen Funktion über die beiden Buttons Download und Upload
    ;
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
        Case $download
             copydown()
          Case $upload
             copyup()
            Case $GUI_EVENT_CLOSE
                Exit
    
        EndSwitch
     WEnd
    ;
     ; Erste Funktion Kopieren von Server auf Rechner $Projektdown
     ;
     Func copydown()
        ;Prüfung der Radios und setzen der entsprechende Zielvariablen
        If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $dest = $aSourceDest [0] [1]
        If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $dest = $aSourceDest [1] [1]
        If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $dest = $aSourceDest [2] [1]
         local $source = $aSourceDest [3] [0]
    
    ;Kopierbefehl mit der $SourceDest [3] [0] und der $dest
    ;
    Local $jjjjdown = "20" & StringLeft(GUICtrlRead($idEditProjektDown), 2)
    Local $prodown = GUICtrlRead($idEditProjektDown)
    
    ;ConsoleWrite ('< $Projektdown = ' & $Projektdown & @CRLF)
    ;ConsoleWrite ($source & $jjjjdown & "\" & $prodown & "\Berechnungen" & @CRLF)
    ;ConsoleWrite ($dest & $jjjjdown & "\" & $prodown & "\" & @CRLF)
    Local $CopySuccess
    $CopySuccess = DirCopy (($source & $jjjjdown & "\" & $prodown & "\Berechnungen"), ($dest & $jjjjdown & "\" & $prodown & "\Berechnungen"), $FC_OVERWRITE)
    ConsoleWrite('< DirCopy = ' & $CopySuccess  & @CRLF)
    If Not $CopySuccess Then
        MsgBox(16, "Ergebnis von DirCopy : ", "Die Kopieraktion ist fehlgeschlagen ! ")
    EndIf
    
    ;DirCopy (($source & $jjjjdown & "\" & $prodown & "\Berechnungen"), ($dest & $jjjjdown & "\" & $prodown & "\Berechnungen"), $FC_OVERWRITE)
    Return
     EndFunc
    ;
    ; Zweite Funktion Kopieren von Rechner auf Server
    ;
      Func copyup()
         ;Prüfung der Radios und setzen der entsprechenden Quellvariablen
        If GUICtrlRead($Rechner1) = $GUI_CHECKED Then $source = $aSourceDest [0] [0]
        If GUICtrlRead($Rechner2) = $GUI_CHECKED Then $source = $aSourceDest [1] [0]
        If GUICtrlRead($Rechner3) = $GUI_CHECKED Then $source = $aSourceDest [2] [0]
        local $dest = $aSourceDest [3] [1]
    
    ;Kopierbefehl mit der $aSourceDest [3] [1] und der $source
    ;
    Local $jjjjup = "20" & StringLeft(GUICtrlRead($idEditProjektUp), 2)
    Local $proup = GUICtrlRead($idEditProjektUp)
    
    ;ConsoleWrite ('< $Projektup = ' & $Projektup & @CRLF)
    ;ConsoleWrite ($source & $jjjjup & "\" & GUICtrlRead($idEditProjektUp) & "\Berechnungen" & @CRLF)
    ;ConsoleWrite ($dest & $jjjjup & "\" & GUICtrlRead($idEditProjektUp) & "\" & @CRLF)
    
    ;DirCopy (($source & $jjjjup & "\" & $proup & "\Berechnungen"), ($dest & $jjjjup & "\" & $proup & "\Berechnungen"), $FC_OVERWRITE)
    Local $CopySuccess
    $CopySuccess = DirCopy (($source & $jjjjup & "\" & $proup & "\Berechnungen"), ($dest & $jjjjup & "\" & $proup & "\Berechnungen"), $FC_OVERWRITE)
    ConsoleWrite('< DirCopy = ' & $CopySuccess  & @CRLF)
    If Not $CopySuccess Then
        MsgBox(16, "", "Die Kopieraktion ist fehlgeschlagen ! ")
    EndIf
    Return
    EndFunc
    Alles anzeigen
  • Kopiertool

    • kayes
    • 8. Januar 2019 um 19:06

    Hallo Leute,

    ich habe das Tool jetzt mal ein paar Tage im richtigen Umfeld genutzt und es gibt 2 Punkte, die ich noch verbessern möchte.

    1. eine farbliche Kennzeichnung, welche Außendienstrechner gerade aktuell ist.

    2. eine Rückmeldung nach dem Kopiervorgang. Wenn eine Anzahl der kopierten Files (oder wie in einer bat die Auflistung der kopierten Dateien) einfach umzusetzen ist, gerne. Ansonsten reicht eigentlich auch ein einfaches "Kopiervorgang abgeschlossen".

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™