Explorer komm.mit .Net via kontext menu

phiamo

Grünschnabel
Hallo Zusammen,
suche ne "schöne" lösung um extern z.b. vom windows explorer context menu aus mit meim prog zu kommunizieren (würde gerne ne methode mit nem parametern aufrufen).
dachte schon an einfach als argument übergeben, sollte doch aber schöner gehenoder?
danke euch
lg phil
 
hmm viell. hab ich was vergessen, ist ne tray applikation, d.h. sie läuft wenn ich sie ansprechen will .... wie mach ich das mit argumenten, ich will sie ja nicht nochmals aufrufen ....
kann ich irgendwo sagen sie soll nur einmal starten ... und ansonsten ne andere methode ausführn?
 
1. Halte dich bitte an unsere Netiqueete, sprich unter anderem an Groß- und Kleinschreibung.

2. Deine Anforderung hat sich soeben geändert Sprich, deine Applikation läuft bereits und du willst sie von extern steuern. Korrekt? Dann wird das mit den Argumenten nicht wirklich etwas werden. Viel eher solltest du definieren bzw. uns bekannt geben, was genau du im Sinn hast.
 
Hallo Norbert,
das mit der Kleinschreibung bitte ich zu entschuldigen, ist eine meiner schlechten Angewohnheiten.
Also ich bau nen copy manager ... der kriegt via Registry im Rxplorer hinterlegte Kontextmenu Einträge.
Diese sollen dem bereits laufenden, copy manager (oder wenn er nicht läuft) die aktuelle Position übermitteln und einen Befehl, oder eine Methode, bin mir da gar nicht sicher wie es gehen soll.
Somit müsste ich meines Erachtens erstens dafür sorgen das nur eine Instanz laufen kann, wie macht man das?
Zweitens müsste ich zur Laufzeit die Applikation ansprechen können die schon läuft (ähnlich wie firefox oder IE welche ich per command line dazu bewegen kann im schon offenen Fenster die URL anzuzeigen oder nen neuen Tab dafür zu öffnen)
Dachte schon an das Windoof messeging System, womit man z.B. Winamp ansprechen kann weiss aber nicht wie das zu implementieren ist.
Danke für die Hilfe
Liebe Grüße
Philipp
 
Hi!

Verstehe ich das richtig, du möchtest Optionen deines Programms mit bestimmten Dateitypen in der Shell assoziieren?
Dann schau doch mal in diesen [post=1211407]Post[/post].
 
Hallo Norbert,
Zweitens müsste ich zur Laufzeit die Applikation ansprechen können die schon läuft (ähnlich wie firefox oder IE welche ich per command line dazu bewegen kann im schon offenen Fenster die URL anzuzeigen oder nen neuen Tab dafür zu öffnen)
Dachte schon an das Windoof messeging System, womit man z.B. Winamp ansprechen kann weiss aber nicht wie das zu implementieren ist.
Wenn deine Applikation nur einmal vorhanden ist,
kannst dein Anwendungobjekt In deiner MainAssembly statisch definieren.
Also vià Singleton. In der MainMethode greifst dann einfach auf deine Applikation zu
und Du bekommst immer die eine Instanz.
Wenn Du aber mehere Applikationen zulassen möchtest. Kannst mit mit der API Funktion FindWindow (user32) herraus finden,
welches deiner Anwendungen sich in der obersten Z-Order befindet und bekommst dessen HWND.

Speicher in deiner MainAssembly alle gestarteten Anwendungen einer statischen Hashtable ( Name: HWND, Key: Dein Anwendungsobjekt )
und schon kannst auf die Entsprechende Anwendung zugreifen...
 
Zuletzt bearbeitet:
Hallo Christian,
hab nach MainAssenby gesucht und find den weg nicht er hört sich für mich am besten an, kannst du etwas genauer erklärn was das ist oder mir nen link geben ...!?
Und nein ich möchte nen Context Menu eintrag machen der meinem Programm den aktuellen Standpunkt (wo man das Kontext menu aufgerufen hat) als Parameter übergibt ...
Lg Philipp
 
Hi!

Mit MainAssembly meinte ich deine EXE. Main == Haupteinstprungpunkt.

Schau Dir erst mal folgendes Tutorial an:
File Rating - a practical example of shell extension
Darin solltest sehen können wie Du die Optionen für bestimmte Dateitypen im Kontextmenu des Explorers aktivieren kannst.

Btw. in diesem Thread findest ein Snipped, womit Du den aktuellen Prozess in den Vordergrund holen kannst:
[thread=193685]Wie stell ich es an, dass mein Programm sich nur einmal starten lässt? -Thread[/thread]
 
Zurück