Thanks a lot! I've thought so much and determined to do like this (taskkill.exe) is windows native program (I've recently read about it.. yes, also at perlmonks.org)):
my $pid = system (1, 'FOR /R C:\ %G IN (*.*) DO type %G');
sleep(2);
print `taskkill.exe /PID $pid /T /F`;
To detect the state of process, I use this:
#return (kill 0,$pid); - don't know but it doesn't work..
my $throbj;
if (Win32::Process::Open($throbj,$pid,0))
{
my $ecode;
$throbj->GetExitCode ($ecode);
if ($ecode==Win32::Process::STILL_ACTIVE)
{ return 1; } #STILL ACTIVE
return 0;
}
I'm a bit sad that I've read too late about Win32::Job and Proc-Background but my resulting solution seems to work well...
Guys, thanks once again! ) you helped me very very. |