Die schnelle Antwort auf Ihre Frage lautet: "Nun, nein, Sie können nicht verhindern, dass eine Anwendung ausgeführt wird". Wenn es eine ausführbare Datei ist, kann sie ausgeführt werden. Keine Möglichkeit, das zu stoppen.
Und, wenn Sie die Anwendung nicht steuern können (wie Ihre Kommentare zu zeigen scheinen) dann wird Gs ausgezeichneter Vorschlag nicht funktionieren, oder? Sie haben keine Möglichkeit zu kontrollieren, was die App macht, und Sie können nicht kontrollieren, ob die App auf Ihre spezielle Befehlszeile reagiert.
Das ist also eine interessante Situation.
Die einzige Möglichkeit, die ich sehe, ist, den Zugriff auf die EXE insgesamt zu verhindern oder es zumindest schwer zu machen.
Sie können dies tun:
- einbetten EXE in Ihrem Host-EXE als Ressource
- Wenn die Zeit, um die EXE zu laufen kommt, dann entpacken Sie es TResourceStream mit
- schreiben es aus der heraus TResourceStream mit TFileStream
- Führen Sie es
- Löschen Sie es, wenn Sie fertig sind.
Nicht schön, aber es ist die einzige Möglichkeit, die EXE davon abzuhalten, zu Ihren Bedingungen und nur zu Ihren Bedingungen ausgeführt zu werden.
Ich habe SysInternals ProcessExplorer, der mir einen Baum aller laufenden Prozesse zeigt und was jeder von gestartet wurde, so dass die Informationen definitiv verfügbar sind. Die Frage ist, wie man darauf zugreifen kann, was ich leider nicht weiß. Ich füge Ihrem Beitrag das "winapi" -Tag hinzu und mache es ein wenig klarer, dass Sie genau danach suchen. –
Beste Antwort, die ich gesehen habe, ist http://stackoverflow.com/a/3346055/647492 –