Wie kann ich senden eine Nachricht zu einem bestimmten Prozess mit Prozess-id anstatt durch das Fenster-handle?

Umgehen Sie die Einschränkungen von GenerateConsoleCtrlEvent, ich habe zum erstellen einer temporären "Mitte-Mann" - Prozess zu behandeln Start einige Konsolen-Anwendungen. Der Prozess der Hauptzweck ist zu nennen, GenerateConsoleCtrlEvent auf sich selbst, wodurch sich selbst und alle untergeordneten Prozess zu schließen sauber in Reaktion auf die Tastenkombination Strg+UNTBR (statt Prozess.Töten). Diese Notwendigkeit ergibt sich aus der Tatsache, dass GenerateConsoelCtrlEvent hat im Grunde keine Auswirkung, es sei denn, die Prozess-Gruppen-id ist null, das bedeutet, es ist immer nur dann wirksam auf den aufrufenden Prozess in der Arbeitsgruppe selbst. Siehe: https://stackoverflow.com/a/2431295/88409

Also wie auch immer... ich habe diese Zwischenschritte im Prozess, die einen thread startet, ruft die Anwendung.Führen Sie auf eine form, die Prozesse bestimmter Benutzer-definierte Meldungen.

Mein problem ist... wie Nachrichten senden, um diesen Prozess zu Steuern?

Habe ich die Process-Objekt und die Prozess-id, aber das ist alles. Prozess.MainWindowHandle null ist.

Also brauche ich eine Möglichkeit, eine Nachricht an einen bestimmten Prozess oder die broadcast-Nachricht an alle Fenster, die in einen bestimmten Prozess.

FindWindow ist keine option, weil es versucht, zu identifizieren, wird ein Fenster mit Namen und Klasse für jeden Prozess, welcher unzuverlässig ist. Ich möchte eine Nachricht senden, die einen bestimmten Prozess mit keine Mehrdeutigkeit.

InformationsquelleAutor Triynko | 2013-04-22

Schreibe einen Kommentar