XP: Kontextmenü erweitern

Razorblade

SNF-Inventarnr. #9356663
Hallo!

Ich will für ein kleines Programm was ich geschrieben hab eine Kontextmenüunterstüzung in Windows Hinzufügen.
Ich habs schon geschafft, dass ich den Eintrag im Kontextmenü erstelle, jedoch wird das Programm dann pro Datei (die ich vorher markiere) einmal gestartet.
Ich stell mir das ganze so vor wie eine Backuplösung "auf die schnelle" mit 7zip.

Mir ist klar, dass das einfacher über das Senden an menü geht, aber mich ärgert das irgendwie dass ich da nicht dahinterkomm.

Ich hab per Google schon gesucht, hab aber keine wirklichen treffer gelandet.
Vieleicht kennt sich ja hier jemand damit aus.

Daher meine Bitte:
Hat irgendwer Ahnung davon und ist bereit dieses Wissen mit mir zu teilen oder kennt zumindest links die ich mir durchlesen kann?

Der nächste Schritt währe dann ein Kontextmenüeintrag mit Submenü wie in WRAR oder 7ZIP, aber das ist dann wieder was anderes.

Danke
RB
 
zum Bleifisch für Ordner oder Laufwerke:
HKEY_CLASSES_ROOT\Directory\shell\7-Zip\command
HKEY_CLASSES_ROOT\Drive\shell\7-Zip\command

Für alle Dateien muss es hier stehen:
HKEY_CLASSES_ROOT\*\shell\7-Zip\command

@="\"C:\Programme\7-Zip\7zfm.exe\" \"%1\""

(jeweils dieser Eintrag)

Dein Tool muss per Kommandozeile startbar sein (Parameterübergabe/-auswertung).

Winrar vergiss erst mal, das läuft ganz anders...
HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\WinRAR
@="{B41DB860-8EE4-11D2-9906-E49FADC173CA}"
 
Hmm, das Problem besteht aber immer noch, dass das Programm von mir Pro Datei einmal gestartet wird. Es soll aber die Gewählten Dateien in einem Rutsch übergeben.
AFAIK übergibt die Variable "%1" nur den 1. Parameter (Stichwort "Batchparameter" in der Windows Hilfe). Ich hab zum Testen mich auch etwas mit Batch gespielt, und dort funktioniert z.b. der Parameter "%*", im Regkey jedoch nicht. Kennst du dafür vieleicht ne möglichkeit?

Ich dachte mir schon, dass das mit WinRAR, 7z, usw. was ganz anderes ist. Ich hab schon vorher mal den Regkey gefolgt, die CLSID gesucht, ... und bin zu ner .dll gekommen.
 
Also mein Eintrag startet nur den "7zip File Manager", ich nutze WinRar für alles andere.
Und das wird, wie du sagst, per DLL gesteuert.

Wenn dein Tool nur eine Datei bearbeiten kannst, ist das dann halt schlechter
programmiert, da es keine Ordner verarbeiten kann. Es müsste also prüfen,
ob als Parameter ein Ordner oder Datei übergeben wurde und entsprechend
verzweigen. Mehrere Dateien übergeben dürfte nur mit "Senden an" oder
auch nur per DLL funktionieren, vemute ich mal. Weil mit %1 nur genau ein
Parameter übergeben wird und somit genau eine Datei. Also müsste dein
Tool, wenn möglich die komplette Kommandozeile analysieren.

Was macht das Teil eigentlich?
 
Mein Tool ist programmiert, dass es alle Dateien verarbeiten kann. Das Problem ist, dass mit jeder datei, die Markiert und per Kontextmenüaufruf an das Programm übergeben wird, automatisch eine neue Programminstanz gestartet wird.

Unglücklicherweise (für mich zumindest) dürftest du recht haben mit deiner Aussage, dass das nur über ne .dll oder über "Senden an" möglich ist. Schade.

Was macht das Teil eigentlich?
Es liest die Pfade aus, und gibt es mit bestimmten Parametern an 7Zip weiter, um in einem Backupordner ein 7z Archiv zu erstellen.
Ich weis, dass das auch mit einer Direkten ausführung möglich ist, aber die ursprüngliche Anforderung hat sich geändert, und ausserdem wollte ich schaun, ob ich das zusammenbringe.
Is mit meinen "Programmierkünsten (Nur n Script)" wohl nicht möglich. *damn*
 
Oben