Markierte Dateien verarbeiten

  • Hi, jezt brauch ich mal einen Denkanstoß.

    Ich möchte Dateien verarbeiten die ich im Explorer markiert habe und per Kontextmenue eine befehl (autoit Programm) ausführen.
    Aber wie bekomme ich von den Ausgewählten Files idi Dateinamen in das Script ?

    Gruß
    Wolke

    Einmal editiert, zuletzt von wolkenloser (23. März 2006 um 07:42)

  • schon mal an strg+c und clipget gedacht?
    oder f2 strg+c clipget

    wäre jetzt meine erste idee

  • Das habe ich probiert, aber dann werrden dei Markierten Dateien selber in die Zwischenablage kopiert und nicht die NAMEN dieser.

    Ich brauche aber den Pfad+Dateiname.

    Hat jemand eine andere Idee ?

    Gruß
    Wolke

    • Offizieller Beitrag

    Wenn du die Shellextension registrierst, dann steht in der Variablen "%1" meines Wissens der (oder die) Dateiname(n) drin, d.h. wenn du dein Programm in der Registry so einträgst,

    Code
    C:\Programm.exe %1


    , dann sollte $CmdLine[1] die Pfade enthalten.

    ich hoffe, das klappt,
    peethebee

  • du kannst doch auch

    Code
    send("{f2}"&"{ctrl}c"&"{esc}"); machen
    ;dann
    guictrlsetdata($deine_input_box, clipget())


    das sollt doch gehen

  • Ich hab jertzt zumindest den Ansatz.

    der ist ganz Simpel.

    Ich muß einfach nur ein Script zur EXE Compilieren dann kann ich belibige Dateien "draufziehen" und sofort wird ein Array mit den Dateinamen erstellt.
    Dazu brauche ich gar nichts weiter machen (wußte ich allerdings bisher auch nicht)

    Z.B

    Code
    #include <Array.au3>
    _ArrayDisplay($CMDLINE,"")

    Das alleine bewirkt schon, das ich ein Array bekomme,
    jetzt brauche ich nur noch eine Schleife machen, die einen Befehl für jedes ArrayElement ausführt.


    Der Teil mit dem Rechtsklick hat dann weniger was mit Autoit zu tun, das geht z.B einfach daurch, das die EXE dann ins den Ordner "Send To" des jeweiligen Benutzerprofils kopiert wird.
    So kann ich dann files selektieren und per rechtsklick über "senden an" an das Autoitprogramm übermitteln.

    THATS IT :)

    Wenn mir jezuz noch einer sagt wie ich es machen muß, damit ich direkt einen Befehl ins Kontextmenue bekomme, dann klappt es 100% so wie ich es vorhatte.

    Gruß
    Wolke

    • Offizieller Beitrag

    Na wenns weiter nichts ist.
    Hier als Beispiel regedit einbauen:


    Das ganz geht dann auch ganz sicher mit ner simplen Regdatei, die den Eintrag macht, wenn er noch nicht vorhanden ist.

  • bei mir erscheint nix

    guck mal, ich habe den Regzweig extrahiiert,
    dann kannst Du besser sehen ob ich es richtig gemacht habe :)

    Code
    Windows Registry Editor Version 5.00
    
    
    [HKEY_CLASSES_ROOT\Directory\shell\AUTOIT Test\command]
    @="C:\Dokumente und Einstellungen\dm\Desktop\AU3\Explorer_rightklick_tool\rightklicktool2.exe"

    Gruß
    Wolke

    • Offizieller Beitrag

    Hmm. Hab nochmal getestet. Wenn du auf nen Ordner klickst und es dann erscheinen soll, dann muss es hier stehen:

    Code
    [HKEY_CLASSES_ROOT\Folder\shell\Autoit]
    
    
    [HKEY_CLASSES_ROOT\Folder\shell\Autoit\command]
    @="C:\Dokumente und Einstellungen\dm\Desktop\AU3\Explorer_rightklick_tool\rightklicktool2.exe"


    Sonst in den Sendto Ordner des Benutzers schieben unter:

    Code
    C:\Dokumente und Einstellungen\dm\SendTo


    einfach ne Verknüpfung. Die bekommt dann automatisch die Dateinamen als Attribute mit.