Wir haben eine WinForms-Anwendung in C# 3.5 (SP 1). Wir möchten die Anwendung auf einen Prozess im Speicher mit mehreren Fensterinstanzen beschränken. Wir suchen nicht nach einem MDI-Ansatz, sondern nach separaten Hauptformularinstanzen, ohne mehrere Anwendungsprozesse starten zu müssen.Einschränken der WinForm-Anwendung auf einen Prozess mit mehreren Instanzen
Wir evaluieren drei Ansätze:
- Windows-Nachrichten
- COM
- WCF
Wir haben die groben zu den ersten 2 (PInvoke mit Windows-Nachrichten und überwiegendes WinProc, COM Registry usw.) und sie verwenden ältere Technologien.
Wir haben die Idee diskutiert, WCF stattdessen mit Named Pipes zu verwenden und denken, dass dies der sauberste und einfachste Weg ist, die anstehende Aufgabe zu erfüllen.
Was ist die sauberste, moderne Methode, um die Anwendung auf einen Prozess mit mehreren Hauptformularinstanzen zu beschränken?
zu tun Was COM tun, WCF und Windows Messages haben damit zu tun? –
Jemand hat die erste Anwendung mit COM in der Registrierung registriert und dann abgefragt, wenn die Anwendung zum Aufruf der bestehenden App geladen wird. Die andere Idee war, WinProc zu überlasten und PInvoke ein WM_COMMAND, um die Instanz des Dialogfelds zu erstellen. WCF würde eine benannte Pipe für uns erstellen. Zumindest wurde das dort rausgeworfen. – blu
Ok, alles, was Sie wissen möchten, ist, wie Sie der bereits laufenden Instanz der Anwendung mitteilen, ein neues Fenster zu erstellen, wenn Sie versuchen, eine zweite Instanz auszuführen? Eine Window Message funktioniert gut, aber WCF wäre vielseitiger, für die Schnittstelle, Parameter, Konfiguration und ich denke, es wäre sauberer. – mlessard