Mit c# Prozesse steuern



  • Hallo!

    Ich habe folgende Situation. Ich habe eine C# Applikation geschrieben, die eine C++ Applikation startet. Das mit dem Starten klappt auch recht gut, aber ich kann die Applikation nicht beenden. 😕

    Hier der Code:

    Process[] myProcesses = Process.GetProcessesByName("XYZ");
                for(int i=0; i < myProcesses.Count();i++)
                {
                    Console.WriteLine("Process : "+myProcesses[i].ProcessName + " - Idi " + myProcesses[i].Id);
                }
    
    .
    .
    .
    myProcesses = Process.GetProcessesByName("XYZ");
                foreach (Process i in myProcesses)
                {
                    i.CloseMainWindow();
                }
                System.Threading.Thread.Sleep(500);
                myProcesses = Process.GetProcessesByName("XYZ");
                foreach (Process p in myProcesses)
                {
                    p.Kill();
                }
    

    Die C++ Applikation wurde mit einem Entwicklungs-Tool umgesetzt. Kann es daran liegen?

    Mein Rechner hat Windows 7 installiert.


  • Administrator

    1. Was heisst "Kann die Applikation nicht beenden"? Was passiert? Was hast du erwartet?
    2. Was ist das für eine C++ Applikation? Graphische Oberfläche? Konsole? Selbstgeschrieben? Was verstehst du unter einem "Entwicklungs-Tool"?
    3. Abgesehen davon schliesst man andere Applikationen nicht so. Was du hier machst ist die Hau-Drauf-Methode. Korrekt wäre, wenn du der anderen Applikation eine Nachricht senden würdest, dass sie sich doch bitte sauber beenden soll. In der anderen Applikation implementierst du eine entsprechende Behandlung dieser Nachricht und lässt sie sauber beenden. Es gibt zahlreiche Möglichkeiten eine solche Nachricht zu schicken, da kommt es vor allem wieder darauf an, was das für eine C++ Applikation ist.

    Grüssli


Anmelden zum Antworten