如何终止使用 winexec() 创建的进程?

How can i terminate process created with winexec()?

例如,我想用 WinExec() 启动 cmd 并在大约 10 秒后终止它,我为此编写了一些小代码,但它不起作用。为什么它不起作用,我该如何解决?

这是我的代码:

program Project2;

uses
  Windows;

var
  hProcess: THandle;

begin
hProcess := WinExec('C:\Windows\System32\cmd.exe', SW_SHOW);
Sleep(10000);
TerminateProcess(hProcess, 0);
end.

WinExec 没有 return 进程句柄。事实上,它的文档清楚地表明您根本不应该使用此功能。它的存在只是为了向后兼容。

使用 CreateProcess 而不是 return 通过进程信息参数的进程句柄。