Drag and Drop in explorer - Datei kopieren anstatt verschieben



  • Hallo,
    habe ein Programm das dateien verwaltet, welches nun auch Drag and Drop unterstützt.
    Allerdings will ich, dass wenn der Benutzer eine Datei in den Explorer droppt, diese dorthin kopiert wird und nicht dorthin verschoben wird. Letzteres ist nämlcih der Fall, wenn die Quell- und Zieldatei sich im selben Laufwerk befinden.
    Alternativ wäre mir es auch recht, dass wenn der explorer die datei ausschneiden würde, auch keine aktion stattfinden könnte. Also das nur Kopiervorgänge erlaubt werden. Setze ich aber nur DROPEFFECT_COPY, so erhalte ich ein verbotsschild in anderen Anwendungen (z.b. in VLC - in die Wiedergabeliste von VLC gelange ich nur wenn ich auch DROPEFFECT_MOVE setze). Das ist irgendwie konfus.
    Meine "Notlösung" ist, dass ich alle gedraggten Dateien mit CreateFile() öffne und ihnen einen Schreibschutz verpasse (FILE_SHARE_READ) und das handle nachm Droppen wieder frei gebe. Damit stelle ich sicher, dasses auch bei dingen wie VLC geht, aber dass meine Dateien auch nicht verloren gehen.
    Und warum zum Henker spackt VLC bei DROPEFFECT_LINK und DROPEFFECT_COPY 😞 ?

    Könnte ich das Ganze auch eleganter lösen?

    MfG


Log in to reply