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

时间:2018-07-22 19:44:26

标签: windows delphi pascal

例如,我想用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.

1 个答案:

答案 0 :(得分:3)

WinExec不返回进程句柄。实际上,其文档清楚表明您根本不应使用此功能。仅为了向后兼容而存在。

使用CreateProcess代替,它通过过程信息参数返回过程句柄。