在Delphi 10.1中,我需要执行另一个外部控制台程序并等待其他外部控制台程序终止。但是其他外部控制台窗口在完成工作后应保持打开状态。
现在我使用这个JCL(JEDI)函数:
ThisShellExecResult := JclShell.ShellExecAndWait(
ThisProgram, // Filename
ThisParameters, // Parameters
'', // Verb (Operation)
ThisShowCommand, // ShowCommand (SW_SHOW or SW_HIDE)
ThisDirectory, // Directory
);
此功能在等待外部控制台程序终止时效果很好。
但是如何让外部控制台程序保持其控制台窗口打开?
我经常看到提到的/k
参数可以打开控制台窗口。
但它怎么能适合这个功能?
答案 0 :(得分:0)
正如我的问题是"但它怎么能适合这个功能的背景?" (其中参数传递给外部程序,如问题中的代码示例),这里是答案:
ThisShellExecResult := JclShell.ShellExecAndWait(
'cmd.exe', // Filename
'/K ' + JclStrings.StrQuote(ThisProgram, '"') + ' ' + ThisParameters, // Parameters
'', // Verb (Operation)
ThisShowCommand, // ShowCommand (SW_SHOW or SW_HIDE)
ThisDirectory // Directory
);
这是有效的,因为我已经通过测试验证了它。