Aktion auf markierte Dateien anwenden

  • Hallo. Wenn ich angenommen zehn Dateien in einem Verzeichnis habe und davon fünf markiere, möchte ich auf die fünf markierten Dateien eine Aktion anwenden. Meinetwegen umbennen, Atribut verändern oder verschieben etc. Wie bekomme ich diese Mehrfachauswahl nun in ein Array, geht das überhaupt?

    Einmal editiert, zuletzt von Scritch (24. Oktober 2012 um 12:00)

  • Die einfachste Lösung: ziehe sie mt der Maus auf ein AutoItprogramm das Dropaktionen erkennt. Du kannst dir dazu meinen MP3-Player anschauen.

    mfg autoBert

    Einmal editiert, zuletzt von autoBert (23. Oktober 2012 um 14:20)

  • Hallo. Danke für deine Antwort. An die Möglichkeit habe ich auch schon gedacht. Wäre aber nur eine Notlösung. Ich suche nicht nach dem einfachsten Ergebnis das zu programmieren, sondern nach der einfachsten Bedienung :)

    Später möchte das nicht ich benutzen, sondern es werden irgendwelchen unbedarften User benutzen sollen, die durch eine einfache Methodik, also quasi mit einem Hotkey, Dateien makieren sollen, die z. B. von einem Löschlauf verschon bleiben. Und da ist die Drag n' Drop Methode nicht die optimalste wenn die User noch wieder mit einer GUI konfrontiert werden :)

  • So funktioniert es wenigstens schonmal ansatzweise:

    [autoit]

    HotKeySet("{F5}", "test")

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

    while 1
    sleep(100)
    WEnd

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

    Func test()
    send("^c")
    sleep(300)
    Local $bak = ClipGet()
    MsgBox(0, "Clipboard contains:", $bak)
    ;~ Exit
    EndFunc

    [/autoit]

    Wenn allerdings mehrere Dateien markiert werden, dauert es entsprechend länger diese der Zwischenablage hinzuzufügen. Länger als 300ms. Ggf. kann man den Wert noch dynamisch anpassen, wenn sich keine andere bessere Lösung findet.

  • Klasse Idee, danke. Ich hätte jetzt gedacht dass die in die Zwischenablage zu kopierenden Dateien eine nach der anderen in der Zwischenablage auf taucht. Aber dem scheint ja nicht so zu sein :) So ists perfekt, danke.

    • Offizieller Beitrag

    Bitte, bitte. Das ganze wäre ja noch langsamer, wenn Windows jede Datei einzeln da reinpfrimeln würde und außerdem eben das Ende nicht feststellbar. So ist das schon ganz hübsch ;).
    Zumindest für Textinhalte könnte man den alten Inhalt der Zwischenablage noch sichern und wiederherstellen, mancher User wundert sich sonst…

    Johannes

  • Hi,

    Zitat

    Ich suche nicht nach dem einfachsten Ergebnis das zu programmieren, sondern nach der einfachsten Bedienung

    Dateien markieren, rechtsklick, und dein Programm anklicken (das dann natürlich ins Explorer-Kontextmenü muss^^, was aber kein Problem darstellt ).
    Geht ohne Hotkey (den du tunlichst vor jeder "Datei Markieren"-Aktion ausschalten solltest! ) und macht den geringsten Aufwand.
    Weiterhin kannst du im Kontextmenu dein Programm ans "Senden an" anfügen. Das ist der SENDTO-Ordner im Verzeichnis C:\Dokumente und Einstellungen\Administrator(oder der Username)\SendTo
    Die übergebenen Dateien lassen sich in AutoIt in $cmdline[] auslesen

  • Zumindest für Textinhalte könnte man den alten Inhalt der Zwischenablage noch sichern und wiederherstellen, mancher User wundert sich sonst…


    Nette Idee, aber den Komfort für den user lasse ich mal aus :) Ich unterstelle denen sowieso jetzt einfach mal, dass die wenigsten überhaupt mit der Zwischenablage arbeiten :)

    Dateien markieren, rechtsklick, und dein Programm anklicken (das dann natürlich ins Explorer-Kontextmenü muss^^, was aber kein Problem darstellt ).
    Geht ohne Hotkey (den du tunlichst vor jeder "Datei Markieren"-Aktion ausschalten solltest! ) und macht den geringsten Aufwand.
    Weiterhin kannst du im Kontextmenu dein Programm ans "Senden an" anfügen. Das ist der SENDTO-Ordner im Verzeichnis C:\Dokumente und Einstellungen\Administrator(oder der Username)\SendTo
    Die übergebenen Dateien lassen sich in AutoIt in $cmdline[] auslesen


    Ehrlich gesagt weiß ich nicht genau was genau du mir mitteilen möchtest :) Wieso Programm im Kontextmenü? Wieso "Senden an..."? Und wieso den Hotkey nach jeder Markieraktion ausschalten? Der Benutzer soll Dateien markieren und einmal den Hotkey drücken... und nicht gedrückt halten.