probleme mit ShellExecute



  • Hallo,

    ich hoffe jemand kann mir bei meinem Problem weiterhelfen.

    Ich möchte mit der ShellExecute folgenden Befehl übergeben:

    C:\Programme\UGS\NX4\UGII\ug_inspect.exe -full "D:\UniGraphics\Part-Files\Uebung.prt" >C:\Temp\output.txt

    Das aufgerufene Programm liest Datei-Attribute aus einer Datei aus und speichert diese in ein Text-Datei.

    Hier mein Code dazu:

    ShellExecute(NULL,"open", stBefehl.c_str(), stParams2.c_str() ,NULL, SW_SHOWNORMAL);

    stBefehl.c_Str() beinhaltet die exe-Datei:
    C:\Programme\UGS\NX4\UGII\ug_inspect.exe

    stParams2.c_Str() beinhaltet die Parameter für das Programm:
    -full "D:\UniGraphics\Part-Files\Uebung.prt" >C:\Temp\output.txt

    Ich vermute, dass es in stParams2 an ">C:\Temp\output.txt" liegt, da dies eigenltich nicht mehr zu den Parametern der EXE-Datei gehört, sondern ein Befehl für die Ausgabe in eine txt-Datei ist.

    Im Prinzip muss ich die exe-Datei, die erfordelchen Paramter für die Exe-Datei und den Befehl zum schreiben in die txt-Datei übergeben.

    Funktioniert das überhaupt mit ShellExecute?

    Im voraus schon mal Danke für die Hilfe

    Grüße

    Michael Zimmer



  • Hallo,

    So auf Anhieb würde ich sagen :

    -full "D:\UniGraphics\Part-Files\Uebung.prt >C:\Temp\output.txt"

    Sonst hast Du doch 3 Parameter die Du übergibst.
    Du willst aber nur 2 übergeben :

    -full
    D:\UniGraphics\Part-Files\Uebung.prt >C:\Temp\output.txt

    Nash



  • Hi jamiger,

    Deine Vermutung stimmt, es liegt an dem >. Diese Ausgabeumleitung ist ein Feature des CMD-Prozessors. Den solltest Du starten und den kompletten Aufruf als Parameter mitgeben (wie in einer BAT-Datei).

    Oder Du machst es gleich richtig mit CreateProcess(). Ist etwas aufwendiger, aber da kannst Du die Umleitungsdateien selbst vorher anlegen und mitgeben.

    Gruß vom 1/4



  • Hallo,

    ich liege noch in den Anfängen mit C++ und bräuchte etwas Hilfestellung, wie ich mein Problem mit CreateProcess lösen kann.






Anmelden zum Antworten