【问题标题】:How can cmd.exe be automatically closed after execution?cmd.exe如何执行后自动关闭?
【发布时间】:2020-01-05 16:45:50
【问题描述】:

我运行 cmd.exe 来移动具有管理员权限的文件:

ThisParams := '/K move ' + '"' + ThisSourceFile + '"' + ' ' + '"' + ATargetFile + '"';
Winapi.ShellAPI.ShellExecute(0, 'runas', 'cmd.exe', PChar(ThisParams), '', Winapi.Windows.SW_HIDE);

但是,cmd.exe 进程(虽然不可见)在执行后仍然处于活动状态并在内存中,并且在任务管理器中保持可见。

这种情况下的cmd.exe如何执行后自动关闭?

【问题讨论】:

标签: delphi delphi-10.3-rio


【解决方案1】:

作为documented /k 使命令解释器在执行传递的命令后继续运行。你应该改用

/c   执行String指定的命令,然后停止。

【讨论】:

  • 对于上述情况,是否有可能得到move 操作的结果?例如,如果目标文件存在并且它是只读,则即使使用管理员权限启动 cmd.exe,move 操作也会失败。如何获得move 操作失败的通知?
  • 我创建了一个new question for this new problem
猜你喜欢
  • 2016-11-08
  • 2017-07-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-20
相关资源
最近更新 更多