【发布时间】: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如何执行后自动关闭?
【问题讨论】:
-
我尝试在参数字符串的各个位置添加
/C开关。它不起作用。 -
@SertacAkyuz,现在我真的阅读了页面上的文字:“/c 执行 String 指定的命令,然后停止。”所以现在我用 /C REPLACED /K 并且它可以工作。谢谢!请创建一个我会投票的答案。
-
你可以考虑using
IFileOperationwith the COM Elevation Moniker,那么你就不需要单独的进程了。