Rekursiv Dateien per Explorer Kontextmenü drucken

  • Hier habe ich ein kleines Skript, mit dem man - wie der Threadtitel bereits verrät - Dateien über das Kontextmenü des Explorers drucken kann.

    Es macht eigentlich nichts anderes als das bereits vorhandene Drucken/Print. Einziger Gewinn ist, dass man auch bei Ordnern in der Auswahl per Rechtsklick drucken kann. Wenn mindestens ein Ordner unter den markierten Dateien ist, erscheint eine kleine GUI, in der man einstellen kann, wie viele weitere Unterverzeichnisse auch nach druckbaren Dateien durchsucht werden sollen. Null meint keine - also nur die druckbaren Dateien in dem Ordner, eins meint auch die druckbaren Dateien in Verzeichnissen, die in diesem Ordner liegen usw.

    Hinweis: Es können nur Dateien gedruckt werden, bei denen auch der normale Windows-Eintrag "Drucken" oder "Print" im Kontextmenü vorhanden ist. Das unterscheidet sich mit der Software, die installiert ist. Ich habe mir nicht die Mühe gemacht, zu schauen wie man das am besten ausliest, sondern meine Konfiguration fest eingetragen. Bei mir ist Office installiert. Daher habe ich in die Liste der druckbaren Dateien etwa doc und xls eingetragen. Je nachdem, was man braucht, gilt es die Zeilen 106 und 110 anzupassen (oder es gleich ordentlich zu machen ;) )

    Siehe hierzu vllt. auch einen Diskussions-Thread dazu: Dateien drucken per Explorer Kontextmenü


    Das Skript kann solo ohne Installation getestet werden. Einfach Dateien im Explorer markieren und das Skript ausführen.

    Das Skript
    Installation in Kontextmenü


    Hier ein Skript zum Installieren in das Kontextmenü (muss im Skriptverzeichnis liegen. Skript muss kompiliert im Verzeichnis vorhanden sein - kann man natürlich auch alles ändern..)

    Deinstallation aus dem Kontextmenü

    Im Anhang nochmal die Skripte zusammen mit einem Icon.

    EDIT: Das Skript wurde nach Beitrag 2 nochmal leicht bearbeitet. Zwar ohne sichtbaren Effekt, aber nun ohne Fehler.

  • anke,

    werde das morgen mal probieren- gebe dann Rückmeldung..

    Gruß

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Hi,

    - Deine Funktion _FileListToDict wird Ordner im Rekursiven nicht korrekt ausgeben.

    Wenn der erste Teil der If-Abfrage erfolgreich ist, wird der Else-Teil (hier würde der Ordner in das Dict übernommen werden) nie ausgefürt.

    Spoiler anzeigen

    Er kann also nur Order ausgeben die er nicht durchsucht.

    Sorgt natürlich für keinen Fehler, da in diesem Script keine Ordner gesucht werden.

    - Die Stärken der Dictionary Objekte werden, in dem gegebenen Script, eigentlich garnicht genützt/gebraucht.

    Vielleicht stattdessen Array/List/... benützen.

    - Sieh dir mal die Hilfe zu "GUICtrlCreateUpdown" an, das passt denke ich etwas besser.

    AutoIt
    Local $idComboBox = GUICtrlCreateCombo("", 72, 48, 40, 25, 0x0003)
    GUICtrlSetData($idComboBox, "0|1|2|3|4|5", "0") ; Hier in der Combobox ist die Rekursionstiefe eingeschränkt. Soll es tiefer gehen, müssen die Werte nur ergänzt werden.

    mfg

    Zeitriss

  • Hey Zeitriss,

    Toll, das du drüber geschaut hast. Wieder einmal vielen Dank für deine Hinweise. :)

    (Fühl dich bitte beklatscht. Den entsprechenden Emoji, finde ich nur zu aufgeregt, um ihn zu benutzen ;) )

    Der Hinweis auf den Fehler in _FileListToDict ist für mich Gold wert, weil ich die Funktion tatsächlich noch häufiger benutzen will. Du hast recht. Hier in diesem "Tool" sind die Dictionaries nicht wirklich ausgenutzt, da es wohl nie genug Dateien werden, dass man einen Geschwindigkeitsvorteil merkt. (Außerdem war ich wohl in einem unüberlegten Dictionary Rausch beim Schreiben. Das Objekt für nicht gedruckte Dateien ist völlig sinnlos ^^ ). Ansonsten würde ich das jetzt nicht wieder umschreiben zu Arrays, weil es ja keinen Nachteil gibt. Ich brauche die Daten ja nicht indexiert.

    Ja, GUICtrlCreateUpdown ist eigentlich sinniger als die Combobox. Ich hatte mich dafür wegen dem $CBS_DROPDOWNLIST-Style entschieden. Finde ich hübscher, als mit Inputfeld (war aber natürlich aus praktischer Sicht völliger Quatsch, weil man dabei die Auswahlmöglichkeiten vorher festlegen musste..). Das sollte ich sicher auch für mich ändern.

    Grüße autoiter