[Cascavel-pm] Problema com Win32::Process::List

Solli Moreira Honorio shonorio em terra.com.br
Sábado Abril 9 14:41:49 PDT 2005


Donato,

Dê uma olhada no link http://www.perlmonks.org/?node_id=446283, lá está
o código necessário para pegar as informações dos processos que estão
rodando no Win98. Instalei um Win98 (isto me faz lembrar porquê alguma
pessoas odeiam tanto a Microsoft) e testei.

Como você poderá ver, o problema do meu script estava num bug do
Win32::API::Struct::sizeof.

Abraços,

Solli Moreira Honorio

-----Original Message-----
From: cascavel-pm-bounces em pm.org [mailto:cascavel-pm-bounces em pm.org] On
Behalf Of Solli Moreira Honorio
Sent: sábado, 9 de abril de 2005 15:28
To: 'Cascavel Perl Mongers'
Subject: RE: [Cascavel-pm] Problema com Win32::Process::List

Donato,

O Win32::Process::List não vai rolar no W9x/ME cara, ele está utilizando
algumas API não suportada neste sistema operacional.

Temos duas alteranativas : 
* a primeira seria utilizar as API que roda neste cara, que seriam as
'CreateToolhelp32Snapshot', 'Process32First' e 'Process32Next'. O
problema que neste caso não estou conseguindo fazer o Win32::API
trabalhar legal com estas API, estou há várias horas tentando sem
sucesso;

* a segunda é utilizar um software externo que lhe dê estas informações
e aí você faz um parse dos dados.

Para a segunda opção, dê uma olhada no Handle
(http://www.sysinternals.com/ntw2k/freeware/handle.shtml), com ele você
pode fazer algo assim :
<code>
open ( PROCESS, "handle -a |" );

while ( <PROCESS> )
{
  # Faça o parse utilizando o $_
}

close ( PROCESS ); 
</code>

É isto aí. 

Se eu conseguir uma ajuda com relação a primeira alternativa eu dou
retorno.

Solli Moreira Honorio
-----Original Message-----
From: cascavel-pm-bounces em pm.org [mailto:cascavel-pm-bounces em pm.org] On
Behalf Of Donato Azevedo
Sent: sábado, 9 de abril de 2005 00:03
To: Cascavel Perl Mongers
Subject: [Cascavel-pm] Problema com Win32::Process::List

Pessoal, estou tentando pegar o nome dos processos rodando. Uso
win98SE portanto nao da pra usar o Win32::Process::Info nem WMI...
o que acontece com o Win32::Process::List é o seguinte:
<code>
use Win32::Process::List;
my $P = Win32::Process::List->new();  #constructor
my @list = $P->GetProcesses();        #returns an array of hashes
my %h = %{ $list[0] };        #get the hash with processname and pid
foreach my $pr ( keys %h ) {
	print "Process $pr has PID " .  $h{$pr} . "\n";
}
</code>
<result>
Cant load path/List.dll for module Win32::Process::List load_file:Um
dispositivo anexado ao sistema nao esta funcionando at procinfo.pl
line 3

erro repotado pelo dynaloader.pm

ALGUEM SABE O QUE FAZER?

para instalar o win32::Process::List:
ppm install http://www.bribes.org/perl/ppm/Win32-Process-List.ppd

Abraços!!

-- 
*******************************************
              Donato Azevedo
Engenharia de Controle e Automação
                      UFMG
*******************************************
We will encourage you to develop the three great virtues
of a programmer: laziness, impatience, and hubris.
    "Larry Wall - Programming perl"
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm

_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm



Mais detalhes sobre a lista de discussão Cascavel-pm