Interne Kopierfunktion von Windows nutzen

  • so das beim kopieren das "Kopierfenster" von windows gezeigt wird?

    Ja, über die Shell.Application

    AutoIt
    $oSh = ObjCreate("Shell.Application")
    $oFolder = $oSh.NameSpace("C:\ZIEL\ORDNER")
    $oFolder.CopyHere("C:\DIE\ZU\KOPIERENDE\DATEI.xyz", 256) ; Anzeige Status

    Aber bei kleinen Dateien (unterer MB-Bereich) poppt das Fenster meist gar nicht erst auf, weil der Kopiervorgang so schnell ist.

  • Super! Vielen Dank ! Ideal wäre natürlich, wenn man das ganze in eine Funktion packen könnte und gleich ein Flag wie bei FileCopy (Dateien überschreiben oder nicht) setzen könnte. Lieder gibt die Hilfe zu "ObjCreate" nicht soo viel her...

    Einmal editiert, zuletzt von igillan (31. August 2022 um 16:04)

  • ObjCreate erstellt Dir nur das Objekt. Was Du dann mit dem Objekt anfangen kannst (Properties, Methods) findest Du in der MS Doku.
    Für CopyHere guckst Du hier.

  • Ideal wäre natürlich, wenn man das ganze in eine Funktion packen könnte und gleich ein Flag wie bei FileCopy (Dateien überschreiben oder nicht) setzen könnte.

    Den Sinn davon musst du mir erklären.

    Das interne Copy-Modul setzt - wie du wolltest - auf Grafikanzeige. Das beinhaltet ebenso die Anfragen, wie mit bereits vorhandenen Zieldateien verfahren werden soll. Aus den 3 Auswahlmöglichkeiten dafür musst du dann manuell wählen. Dieses Fenster kannst du nicht per Option abwählen. Du kannst natürlich probieren dieses Fenster automatisiert anzusteuern. Bischen viel Aufwand, nur um das Windows-Copy-Fenster zu sehen.

    EDIT:

    Ohne OVERWRITE-Option könnte man das so lösen:

  • @all

    Vielen Dank für Eure Hilfe. Ich wollte tatsächlich nur das Kopierfenster sehen, da Filecopy keine grafische Rückmeldung hat. Gerade bei großen Dateien ist das sehr nützlich um evtl. die restliche Kopierzeit zu sehen. Es ist wohl doch mit einem größeren Aufwand verbunden, als ich gedacht habe...

  • Anstatt den Dialog zu automatisieren könntest du auch einfach vorher mit Autoit Mitteln prüfen ob die Dateien schon existieren, falls ja löschst du sie ebenfalls mit Autoit Mitteln und startest danach erst den Kopiervorgang via Windows Funktion "copyhere". Ein Dialog wird dann nicht mehr erscheinen, wenn du das Problem schon zuvor gelöst hast. ;)