Zwischenablage und..



  • Manchmal muss man den Dateipfad zu einer Datei irgendwo einfügen. Zuerst im Explorer den Ordnerpfad kopieren und einfügen und anschließend den Dateinamen, finde ich recht umständlich. Deshalb hatte ich die Idee folgendes Programm zu schreiben:

    (1) Bei Rechtsklick auf die Datei soll ein neuer Punkt erscheinen "Dateipfad kopieren" oder sowas.
    (2) Beim Anklicken soll ein Programm ausgeführt werden, das den Dateipfad in die Zwischenablage legt.

    Ersteres geht vielleicht auch ohne zu programmieren, ich weiß allerdings nicht, wo man sowas einstellen kann.

    Ich hab bisher keine Erfahrungen mit der WinAPI, ich würde mich aber sehr freuen, wenn mir trotzdem jemand weiterhelfen könnte.

    (Ich programmiere mit C++, falls das wichtig sein sollte.)



  • Geht schon mit Bordmitteln. Umschalt+Rechtsklick -> "Als Pfad kopieren".



  • Oh, nice, thx.

    Wobei: Ich hätte den Pfad lieber mit "/" statt "\", weil "\" ab und zu als Escape-Zeichen verwendet wird.



  • Ramanujan schrieb:

    (1) Bei Rechtsklick auf die Datei soll ein neuer Punkt erscheinen "Dateipfad kopieren" oder sowas.
    (2) Beim Anklicken soll ein Programm ausgeführt werden, das den Dateipfad in die Zwischenablage legt.

    Die Stichwörter lauten: "Shell Extension" und "Context Menu Handler". Bei mir läuft auf WinXP was Selbstgebasteltes:

    http://www.rkhb.de/cuibono/rbShellExtension.zip (Benutzung auf eigene Gefahr, aber meiner Erfahrung nach völlig ungefährlich)

    Die Extension hat vier Rechtsklick-Erweiterungen:

    1. Ordner in die Zwischenablage
    2. Dateizeit verändern
    3. Neuen Windows-Explorer im Pfad öffnen
    4. Eingabeaufforderung im Pfad öffnen

    Überall, wo das Kontextmenü auftaucht, funktioniert es auch (auch in weißen Bereichen). Einfach mal herumspielen.

    In der beiliegenden install.bat kann man einstellen, welche Menüs wo erscheinen sollen.

    Es würde mich interessieren, ob es auch in höheren Versionen (Win7, Win8) funktioniert.

    viele grüße
    ralph



  • Ich hab dein Programm mal unter Windows 7 getestet. Abgesehen von (3) funktioniert es. Bei (3) öffnet sich zwar ein Explorer-Fenster, allerdings nicht der entsprechende Pfad. (2) hab ich nicht getestet.

    (4) finde ich enorm nützlich.

    Könntest du mir den Source-Code geben? Ich würde (1) entsprechend verändern, dass \ durch / ersetzt wird.



  • Ich habe den Source mal mit in die zip gepackt und hoffe, ich habe alle nötigen Dateien erwischt. Du brauchst noch ein Platform-SDK. Alles Nähere sagt dir die vc6.cmd .

    Nach schnellem (und nach Jahren etwas verwirrtem) Durchblick würde ich sagen, dass Dein Anliegen am besten bei CListe::CopyClipboard aufgehoben ist. Dort bei Zeile 718 eine neue Schleife einfügen und in hMem alle '\' durch '/' ersetzen.

    viele grüße
    ralph



  • Hm, sieht deutlich komplizierter aus, als ich mir das vorgestellt hatte. Da muss ich mich erstmal reinarbeiten. Erstmal danke fürs Hochladen.

    Beim meinem PC (Win7 64bit) funktioniert das Programm leider nicht: Es werden keine Kontextmenü-Einträge hinzugefügt. Naja, dann hat sich das Bearbeiten des Codes sowieso erledigt.


Anmelden zum Antworten