Un simple script para manejar los procesos en Windows.
#!usr/bin/perl
#Manager 0.3
#Written By Doddy H
use Color::Output;
Color::Output::Init;
use Win32::OLE qw(in);
use Win32::Process;
&clean;
&options;
sub clean {
cprint "\x0313";
print
"\nManager 0.3\nCopyright 2012 Doddy Hackman\nMail:lepuke[at]hotmail[com]\n\n";
cprint "\x0x30\n\n";
my %process = getprocess();
chomp %process;
$limit = "";
for my $pid ( keys %process ) {
if ( $pid ne "" ) { $limit++ }
push( @procer, $process{$pid} );
push( @pids, $pid );
chomp( @procer, @pids );
}
$limit--;
for my $n ( 1 .. $limit ) {
cprint "\x037";
print
"Process Number: [$n]\tProcess name : $procer[$n]\tPID : $pids[$n]\n";
cprint "\x037";
}
}
sub options {
cprint "\0035";
print
"\n\nOptions :\n\n[a] : Close a process\n[b] Clean Console\n[c] Exit\n\n\n[+] Write you options : ";
$t = <STDIN>;
chomp $t;
if ( $t eq "a" ) {
&close;
}
elsif ( $t eq "b" ) {
reload();
}
elsif ( $t eq "c" ) {
print "\n\n[+] Written By Doddy H\n\n";
<stdin>;
exit(1);
}
else {
reload();
}
}
sub close {
print "\n[+] Write the number of the process : ";
$numb = <STDIN>;
chomp $numb;
Win32::Process::KillProcess( @procer[$numb], "" );
print "\n\n[+] OK , Process Closed\n\n";
<stdin>;
reload();
}
sub reload {
system("cls");
system($0);
&clean;
&options;
}
sub getprocess {
my %procesos;
my $uno = Win32::OLE->new("WbemScripting.SWbemLocator");
my $dos = $uno->ConnectServer( "", "root\\cimv2" );
foreach my $pro ( in $dos->InstancesOf("Win32_Process") ) {
$procesos{ $pro->{Caption} } = $pro->{ProcessId};
}
return %procesos;
}
# The End ?