Das CMD-Fenster für die Protokollierung wird bei Verwendung von RunProgram nie angezeigtBeim Aufrufen meiner Exe mit „RunProgram“ ist ein Problem aufgetreten. Es sollte ein CMD-Fenster für die Protokollierung erscheinen, aber es wird nie angezeigt.
Das CMD-Fenster kann normalerweise auftauchen, wenn ich es manuell ausführe. Gibt es jemanden, der mir bei der Lösung des Problems helfen kann? Dank im Voraus : )
JSL-Code:
RP = Run Program(
Executable(
exefilepathRoot || "CommonalityEngine\PyScript\get_data_from_cache.exe"
),
Options( Char( CAEngine_Main:ConfigFileName ) ),
ReadFunction( "text" )
);
Beim manuellen Ausführen ohne JSL kann ein CMD-Fenster angezeigt werden:

Qualitäts- und VerfahrenstechnikBetreff: CMD-Fenster für die Protokollierung wird bei Verwendung von RunProgram nie angezeigtDas klingt nach @Craige_Hales Dann könnte es richtig sein, dass Ihre Variable rp möglicherweise bereits über diese Protokollinformationen verfügt.Versuchen Sie Folgendes auszuführen:
names default to here(1);
RP = Run Program(
Executable(
exefilepathRoot || "CommonalityEngine\PyScript\get_data_from_cache.exe"
),
Options( Char( CAEngine_Main:ConfigFileName ) ),
ReadFunction( "text" )
);
New Window("Output", text box(RP));
Oder hier ist ein Beispiel, das jeder unter Windows ausführen kann:
names default to here(1);
rp = Run Program(
Executable( "cmd.exe" ),
Options( {"/c", "TaskList\!n"} ),
Read Function( "text" ) // returns all text
);
New Window("Output", text box(rp));Betreff: CMD-Fenster für die Protokollierung wird bei Verwendung von RunProgram nie angezeigtHallo,
Vielen Dank für Ihre Lösung. Ich möchte, dass der Benutzer dieses Fenster sieht, da in diesem Fenster ein Protokoll gedruckt ist.Betreff: CMD-Fenster für die Protokollierung wird bei Verwendung von RunProgram nie angezeigtJa, wir brauchen ein bisschen mehr Informationen. Interagieren Sie mit get_data_from_cache.exe? Öffnet es andere Fenster? Muss es eine Art End-of-File empfangen?
Die RP-Variable enthält möglicherweise bereits den Text, der im CMD-Fenster angezeigt wird. Versuchen Sie es
write(rp);
und sehen Sie, ob es das ist, was Sie wollen.
Wenn Sie etwas in das Fenster eingeben müssen, kann die writeFunction von RunProgram den Text bereitstellen.
Alternativ können Sie CMD.EXE ausführen und ihm den Namen des auszuführenden Programms übergeben.
Betreff: CMD-Fenster für die Protokollierung wird bei Verwendung von RunProgram nie angezeigtHallo @baiyun ,
Was hoffen Sie mit dem Fenster zu tun, sobald es geöffnet wird? Die Funktion „Programm ausführen“ zeigt absichtlich nicht die Benutzeroberfläche an, da sie es Ihnen ermöglichen soll, das Programm vollständig über Skripte zu steuern.Höchstwahrscheinlich würden Sie das, was Sie in diesem CMD-Fenster tun möchten, stattdessen in JMP tun und JMP diese Anweisungen über Lese- und Schreibfunktionen an das Programm weitergeben lassen.
Dieser Link könnte Ihnen den Einstieg erleichtern:
https://www.jmp.com/support/help/en/15.2/jmp/run-external-programs.shtml