Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Zugriff auf markierte Datei, Explorer
absolut
myCSharp.de - Member

Avatar #avatar-2007.jpg


Dabei seit:
Beiträge: 76
Herkunft: Schweiz

Themenstarter:

Zugriff auf markierte Datei, Explorer

beantworten | zitieren | melden

Guten Abend,

Ich muss täglich kopierte Dateien nach einem bestimmten Muster umbenennen (Datum und weitere Zusätze hinzufügen). Nun habe ich mir überlegt, dies zu automatisieren.

Ich wähle die entsprechende Datei im Explorer an, drücke ein Tastenkürzel (Bsp. Shift+F7) und die Datei wird mit meinem Programm umbenennt.

Explorer -> Datei anklicken -> Shift+F7 -> Mein Programm Starten, umbenennen.

Wie kann ich herausfinden, welche Datei im Explorer angewählt ist?

Gruss absolut
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo absolut,

verwende ==> ShellExtensions. Dann ist dein "Programm" eine DLL und die aufgerufene Funktion bekommt als Parameter die markierten Dateien.

herbivore
private Nachricht | Beiträge des Benutzers
absolut
myCSharp.de - Member

Avatar #avatar-2007.jpg


Dabei seit:
Beiträge: 76
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

Danke für die schnelle Antwort.

Zwei Fragen:

Ich habe bei codeproject.com ein Beispiel gefunden, ist dies der richtige Ansatz? Ich habe noch nie etwas von ShellExtensions gehört, sorry.
http://www.codeproject.com/csharp/dateparser.asp


Dieser Beitrag aus dem Forum irritiert mich etwas:
Explorer Kontextmenü erweitern mit Untermenüs

Gruss absolut

Edit:
Irfanview ist ja auch nur ein "normales" Programm, dort kann ich auch mit einem Tastenkürzel einen Screenshot des aktiven Fensters machen. Woher weiss Irfanview, welches Fenster gerade aktiv ist? Oder ist das etwas komplett anderes?
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo absolut,

es wird hier im Forum zum Teil die Meinung vertreten, dass man ShellExtensions nicht in C# schreiben sollte (einen solchen Beitrag hast du ja gefunden und warum man es nicht tun sollte steht ja auch da), aber wenn du es tun willst, ist der codeproject-Artikel sicher hilfreich.

herbivore
private Nachricht | Beiträge des Benutzers
absolut
myCSharp.de - Member

Avatar #avatar-2007.jpg


Dabei seit:
Beiträge: 76
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

Ich habe mich etwas in die Materie eingelesen, besten Dank für die Infos.
Da dieses Programm auf verschiedenen Rechnern eingesetzt wird, werde ich es nicht als .Net-Anwedung schreiben, die beschriebenen Gefahren sind mir zu gross.

absolut
private Nachricht | Beiträge des Benutzers
absolut
myCSharp.de - Member

Avatar #avatar-2007.jpg


Dabei seit:
Beiträge: 76
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

Eine Frage habe ich noch: In welchem Verzeichnis sollte man eine Shellextension ablegen?

C:\Windows
C:\Windows\system32
???

Gruss absolut
private Nachricht | Beiträge des Benutzers
Borg
myCSharp.de - Member



Dabei seit:
Beiträge: 1.529
Herkunft: Berlin, Germany

beantworten | zitieren | melden

\Programme\Gemeinsame Dateien\ (bzw. %CommonProgramFiles%).

Der andere Ordner heißt ja nicht umsonst "Windows"...
private Nachricht | Beiträge des Benutzers
absolut
myCSharp.de - Member

Avatar #avatar-2007.jpg


Dabei seit:
Beiträge: 76
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

Ja schon, da aber:
- Die Shellextension eine DLL ist und keine EXE ist
- Mit dem Explorer gekoppelt ist
- Alle System DLLs in den Windows Ordnern rumliegen

gehört mein Programm, die DLL dann nicht auch in den Windows Ordner???
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo absolut,

es ist eine schlechte Angewohnheit, dass nicht von Microsoft erstelle Programme und Module alle Art ihre DLLs unter Windows ablegen. Darauf wollte Borg wohl hinaus. Was hast du gegen \Programme\Gemeinsame Dateien\? Der Pfad ist doch auch immer erreichbar.

herbivore
private Nachricht | Beiträge des Benutzers
absolut
myCSharp.de - Member

Avatar #avatar-2007.jpg


Dabei seit:
Beiträge: 76
Herkunft: Schweiz

Themenstarter:

beantworten | zitieren | melden

Gegen den Ordner habe ich nix, ich hätte nur gerne eine Begründung gehabt, wieso nicht. Es schien mir etwas unlogisch, da die Shellextension für mein Verständnis kein eigentliches Programm ist.

Andererseits machen Programme wie 7-zip und winrar auch Einträge im Contextmenu und sind im normalen c:\programme\... abgelegt.

Ok, dann wird das Teil in die \Programme\Gemeinsame Dateien\... abgelegt.

Besten Dank für eure Antworten.
Gruss Absolut
private Nachricht | Beiträge des Benutzers