Nachricht senden in C#

Ich bin erstellen einer Anwendung verwendet, die eine Haupt-Projekt, das angeschlossen ist, um mehrere verschiedene DLLs. Von einer DLL-Fenster muss ich in der Lage sein, ein Fenster zu öffnen, in einem anderen aber die DLL ' s können nicht aufeinander verweisen.

Es wurde mir vorgeschlagen, verwenden Sie die sendmessage-Funktion in der ersten DLL und haben einen listener im Haupt-Programm, das leitet die Nachricht an die entsprechende DLL zu öffnen Fenster.

Aber ich bin überhaupt nicht vertraut mit der sendmessage-Funktion und habe eine Menge Schwierigkeitsgrad Ansetzer Dinge zusammen aus Informationen, die ich zu finden bin online.

Wenn könnte jemand bitte zeigen Sie mir den richtigen Weg (wenn es welche gibt) verwenden Sie die sendmessage-Funktion und vielleicht, wie ein Zuhörer fängt die Nachricht, das wäre toll. Hier ist der code habe ich so weit ich bin mir nicht sicher, ob ich in die richtige Richtung.

    [DllImport("user32.dll")]
    public static extern int FindWindow(string lpClassName, String lpWindowName);
    [DllImport("user32.dll")]
    public static extern int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam);

    public void button1_Click(object sender, EventArgs e)
    {
        int WindowToFind = FindWindow(null, "Form1");
    }
Hi Nicole, SendMessage "könnte" helfen in diesem Fall, ja, aber ich fürchte, es ist nicht der einfachste Weg, könnten Sie Ihr Ziel erreichen. Können Sie beschreiben etwas, was Ihre ganze Szenario? Sie haben 1 WindowsForms-Anwendung und einige Klassen-Bibliotheken, die zusätzliche Formulare, die Sie zeigen möchte oder wenn nicht, was genau wollen Sie tun? Gib mehr details, und wir werden sehen, welchen Weg zu gehen.
Wenn Sie haben die Kontrolle über die Anwendung, verwenden einige andere IPC-Strategie ( named pipe/socket )

InformationsquelleAutor Nicole | 2011-02-22

Schreibe einen Kommentar