Entwickler-Ecke

Windows API - CreateProcessW


Aya - Di 22.06.10 17:39
Titel: CreateProcessW
Hi,

ich muß ein Programm (3dsMax) aus meinem Programm heraus mit Parametern starten.

Das ganze klappt prinzipiell wunderbar via z.B. CreateProcess, NUR... in 3dsmax gibt es einen Script befehl "DOSCommand", welcher einfach einen command ausführt (also dasselbe wie ShellExecute z.B.).

Wenn ich 3dsmax ganz normal über eine Verknüpfung auf dem Desktop starte, funktioniert ein "DOSCommand 'notepad'" wunderbar.. wenn ich es mit exakt dem selben WorkingDirectory und Parametern aus meinem Programm heraus starte, funktioniert das DOSCommand nicht...

Ich bin total am Verzweifeln, habe schon tausende varianten jetzt durchprobiert wie ich einen Prozess Starten kann (nutze C++.. hab auch schon QProcess von Qt probiert).. alles vergeblich..

Hat irgendwer eine Idee was ich evtl noch machen kann?

Eine option könnte sein, eine Temp-BAT datei anzulegen und diese zu starten.. allerdings komme ich dann nicht an die ProcessID, aber die brauche ich um die Prozess-Priorität einzustellen..

Aya


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Di 22.06.2010 um 18:00


Gerd Kayser - Mi 23.06.10 12:31

user profile iconAya hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich 3dsmax ganz normal über eine Verknüpfung auf dem Desktop starte, funktioniert ein "DOSCommand 'notepad'" wunderbar.. wenn ich es mit exakt dem selben WorkingDirectory und Parametern aus meinem Programm heraus starte, funktioniert das DOSCommand nicht...

Nur eine Vermutung: Lasse Dir mal mit "PATH" den Suchpfad anzeigen.


Delete - Mi 23.06.10 13:03

Kennt die Funktion einen Rückgabewert den man auswerten könnte?


Aya - Mi 23.06.10 13:16

user profile iconGerd Kayser hat folgendes geschrieben Zum zitierten Posting springen:
Nur eine Vermutung: Lasse Dir mal mit "PATH" den Suchpfad anzeigen.

Das hatte ich auch vermutet, aber als ich dann via DOSCommand sowas gemacht habe:


Quelltext
1:
env > C:\Test.txt                    


stand in der Test.txt alles an environment variablen korrekt drin.

user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Kennt die Funktion einen Rückgabewert den man auswerten könnte?

Ja, allerdings ist der einfach nur 1.. Also wenn ich notepad starten will.
Wenn ich 3dsmax normal starte und das DOSCommand funktioniert, ist der return wert 0.

Aya~