Anderes Programm beenden



  • Ich hab mit Shellexecute ein Programm gestartet und würde dies gerne wieder schließen.
    Mit der Such-Funktion des Forums hab ich auch einige Sachen gefunden mit denen man andere Programme beenden kann, aber die brauchen als Parameter die ProcessID.
    Ich hab aber nur das Handle das ShellExecute mir zurück gegeben hat, wie komm ich damit an die PID?
    Oder gibts einen ganz anderen Weg, den ich nicht gesehen hab?

    Phips

    @Admins:
    Ich programmier mit dem BCB, das is allerdings keine BCB-typische Frage. Wenn meine Frage in ein anderes Forum besser passt, dann verschiebt mich einfach.



  • Bin zwar kein Mod, geschweige denn Admin, kann dich deshalb auch nicht verschieben, der Thread passt aber trotzdem besser nach WinAPI.



  • Nimm CreateProcess. Dann bekommst du die ProcessID ob du willst oder nicht. 🙂



  • Hi CD9000!

    🙄 Ohhh bin ich blind! Mit Tomaten auf den Augen, sollte man sich niemals vor den Rechner setzen.
    Danke für den Tipp mit CreateProcess!

    Phips



  • HALT!
    Jetzt hab ich doch noch was gefunden:
    Wenn ich bei ShellExecute z.B. "C:\\Windows\Wolken.bmp" eingetragen hab, dann war Windows so clever, vorher Paint zu starten und dann Wolken.bmp darin zu öffnen.
    Wenn ich das mit CreateProcess versuche, dann passiert genau.....garnichts.
    Wie mache ich das bei CreateProcess?

    Phips



  • Das musst du dort selbst machen. Also aus der Registry das Standardprogramm für .bmp Dateien ermitteln, denn das muss nicht immer Paint sein 😉



  • Noch was: Shellexecute liefert kein, in Worten k e i n Handle zurück! Siehe Shellexecute, MSDN Abschnitt: Return values.


Anmelden zum Antworten