在Perl中,我在两个不同的Windows命令行(Cmd)中启动了两个命令,如下所示:
system("start $cmd1"); system("start $cmd2");
基本上,这两个命令继续运行,直到我停止使用“CTRL + C”。
我的问题是:
如何发送“CTR + C”到每个命令行(或命令)?
谢谢。
我想你可以使用
my $pid = system(1, $cmd1); # One of the following: kill(INT => $pid); # Sends Ctrl-C kill(TERM => $pid); # Sends Ctrl-Break kill(KILL => $pid); # Calls TerminateProcess($handle, 9) waitpid($pid, 0);
我通过创建两个分离的进程来解决它。 看下面的代码:`
use Win32::Process; use Win32; sub ErrorReport{ print Win32::FormatMessage( Win32::GetLastError() ); } Win32::Process::Create($ProcessObj, "C:\\winnt\\system32\\notepad.exe", "notepad temp.txt", 0, DETACHED_PROCESS, ".")|| die ErrorReport(); $ProcessObj->Suspend(); $ProcessObj->Resume(); $ProcessObj->Wait(INFINITE);
`