in reply to caller of perl script
use Win32::ToolHelp ':all'; use Win32::Process::CommandLine; use Tree; my @nodes; for (GetProcesses) { my %h; @h{qw/n_refs pid hid mid n_threads ppid prio flags name/} = @$_; Win32::Process::CommandLine::GetPidCommandLine($h{pid}, $h{args}); push @nodes, Tree->new(\%h); } my @forest; while (my $node = shift @nodes) { my ($parent) = grep {$_->value->{pid} == $node->value->{ppid}} @nodes, map $_->traverse, @forest; $parent ? $parent->add_child($node) : push @forest, $node; } for (map $_->traverse, @forest) { printf "%s%s\n", " " x $_->depth, $_->value->{args} || $_->value->{name}; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: caller of perl script
by BrowserUk (Patriarch) on Jun 12, 2010 at 05:00 UTC |