Gestartetes Programm kann kein weiteres Programm starten

RuFFnEcK

Erfahrenes Mitglied
Hallo zusammen,

ich habe hier ein Diagnose Programme geschrieben, welches ein Clean Programm startet,
welches wiederum ein Uninstall Programm startet.

Das Clean Programm liegt in einem Unterordner, des Diagnose Programms.
Wird das Clean Programm manuell gestartet, funktioniert alles und kann das Uninstall
Programm starten.
Wird das Clean Programm jedoch aus dem Diagnose Programm gestartet (CreateProcess), kann das
Uninstall Programm nicht mehr gestartet werden, mit der Fehlermeldung dass sich das Uninstall Programm nicht in dem gleichen Verzeichnis befindet wie das Clean Programm...

Ich hoffe ihr blickt da noch durch was wo liegt und wer wen startet^^
Hab mit Prozess Monitor ins Programm geschaut und wenn das aus dem Diagnose Programm
gestartet, dann ist "Current directory" des Clean Programms das Verzeichnis des Diagnose Programmes.
Wird das Clean Programm manuell gestartet, dann ist "Current directory" auf dem richtigen Verzeichnis...

Weiß jemand wie ich das Clean Programm via CreateProcess starten kann, so dass es
auch weitere Programme starten kann?

Danke und Gruss
RuFF
 
Bei CreateProcess kannst du das Arbeitsverzeichnis für das zu startende Programm mit angeben.

Ich nehme mal an, dass du für das Clean und Uninstall-Programm den Code nicht hast. Sowas müsste man nämlich eigentlich da drin ändern.
 
Sry für die späte Antwort,
aber hab mir mal nen richtig langes WE gegönnt
und meine Küche aufgebaut :mad:

Ähm nein ich hab den Quellcode der Inst- Uninstaller leider nicht.
Es geht bei dem Uninstaller um das FTDI Clean Tool der den Uninstaller aufruft mit entsprechenden Parametern.

Kann man viell. die Parameter die Programme untereinander austauschen abfangen?
Dann würde ich das Uninstaller Prog, selbst aufruen ohne das Cleaning Toll :D

Ich schau erstmal mal nach ob das mit dem Arbeitsverzeichnis ;)

Danke für die Antwort!
Gruss
RuFF
 
Mal wieder wurde mir hier geholfen ;)

Der vorletzte Parameter von CreateProcess() nimmt den Pfad an, der als Arbeitspfad für das gestartet Programm gilt.
Wenn man NULL übergibt, dann übernimmt der den Pfad des Vaterprozesses, also des Startenden...

Vielen Dank und Gruss
RuFF
 
Zurück