C++ Programm erst ausführen wenn anderes gestartet wurde?

nahkillo94

PC-Selbstbauer(in)
C++ Programm erst ausführen wenn anderes gestartet wurde?

Hi, ok der Titel klingt leicht verwirrend,

also wie kann ich erreichen das ein Programm von mir in c++ erst eine bestimmte funktion ausführt wenn ein anderes programm/prozess (z.b. xyz.exe) gestartet wurde?
 
AW: C++ Programm erst ausführen wenn anderes gestartet wurde?

Ist die xyz.exe ein Teil des C++ Programms oder eine andere Anwendung?
 
AW: C++ Programm erst ausführen wenn anderes gestartet wurde?

Du müsstest in deinem Programm per System-API abfragen, ob das Programm läuft. Dazu wirst du allerdings Administrator-Rechte brauchen — es sei denn, dein Programm xyz schreibt ein Logfile, an dem du sehen kannst, ob es läuft.

Sauberer wäre, wenn dein Programm xyz direkt dein neues Programm anrufen würde. Dazu bräuchtest du eine Schnittstelle, auf der dein neues Programm lauscht. xyz würde die dann ganz einfach anpingen und los geht's. Das wäre wohl der geringste Aufwand — zumindest, wenn du xyz verändern kannst und an deine Bedürfnisse anpassen.

Dritte Variante wäre, dass du ein Programm schreibst, dass xyz startet. Wenn es das getan hat, pingt es dein neues Programm an. Das geht dann auch ohne dass du xyz komplett nutzen kannst, braucht keine Administrator-Rechte und ist relativ sauber — allerdings natürlich mit Overhead.

PS: Ich gehe davon aus, dass xyz eine andere Anwendung ist, die du auf deinem Rechner liegen hast.
 
AW: C++ Programm erst ausführen wenn anderes gestartet wurde?

Also das xyz.exe ist ein komplett fremdes Programm auf das ich keinen Einfluss habe.

Also fällt 2. Variante schonmal weg. Ich möchte aber erst das xyz.exe starten und mein Programm soll dann merken ob es läuft oder nicht, also kommt nur dein erster Vorschlag in Frage.

Da ich mich selten mit System-API beschäftige könntest du mir ein zeigen wie man das umsetzt?
 
AW: C++ Programm erst ausführen wenn anderes gestartet wurde?

Mir fällt mir gerade ein, dass die laufenden Prozesse auch ohne Admin-Rechte abfragbar sind. Damit ist die erste Lösung wohl doch deutlich besser als angenommen. Unter Linux werden dafür Textdateien unter /proc generiert, die einfach auszulesen sind. (Von Windows habe ich keine Ahnung.) Ich habe gerade an diese ganzen Anti-Cheat-Dinger gedacht, die müssen aber ja mehr wissen, als die Info, ob das Programm läuft.
 
AW: C++ Programm erst ausführen wenn anderes gestartet wurde?

Ja, du kannst unter Windows die laufenden Prozesse ergaunern: MSDN
 
Zurück