Hallo erstmal
Ich hab da mal eine Frage. Ich bearbeite seit Stunden mein Programm und würde gerne über das Windows Kontextmenu mein Programm starten lassen (in nur einer Instanz) und dort dann direkt meine selektierten Dateien anzeigen lassen, in einer Listbox.
Ich hab schon in der Registry paar Sachen geändert, sodass mein Kontextmenu schon mein Programm starten kann und auch bei einer selektierten Datei, die Datei direkt in der Listbox ausgibt.
(Habe in der Registry einen Command eingeben: "derPfad\meinedatei.exe %1")
Doch mein Problem ist nun, dass dies nicht mit mehreren Dateien funktioniert. Denn wenn ich mehrere Dateien selektiere und mein Programm dann über das Kontextmenu starte entstehen mehrere Instanzen, was ich aber nicht möchte.
Ich habe schon viel gegooglet und herausgefunden, dass man das Problem über eine (komplizerte) Remoteverbindung machen könnte, was aber sehr langsam ist. Außerdem habe ich gelesen, dass .Net DDE nicht mehr unterstützt und dass es noch eine Möglichkeit über ein "DragTraget"
oder "IDragTraget" gibt.
Was mich zusätzlich verwirrt ist, dass wenn ich die Dateien auf meine *.exe ziehe alle in einer Instanz eingefügt werden. Also der Code dafür war ganz einfach:
- static void Main(string [] data)
- {
- Application.EnableVisualStyles();
- Application.SetCompatibleTextRenderingDefault(false);
- data = Environment.GetCommandLineArgs();
- Form1 test = new Form1();
- try
- {
- for (int i = 1; i <= data.Count() - 1; i++)
- {
- test.listBox1.Items.Add(data[i].ToString());
- }
- }
- catch
- {
- }
- Application.Run(test);
- }
- }
Doch warum ist das mit dem Kontextmenu so komplizert? Gibt es da nicht auch eine so einfache Lösung?
Würde mich freuen wenn mir jemand weiterhelfen könnte