Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: My Desk
Por coyotesp
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Criando uma aplicação que mostra os processos em execução
Linux user
master_foca
08/01/2004
Bom amigos, nesse artigo vou mostrar como criar uma aplicação que mostra os processos que estão em execução no Linux utilizando o Kylix. É bem simples!
Por: Marcelo Caçapava Lopes Silva | Blog: http://www.logicaone.com.br
[ Hits: 5541 ]
Conceito: 10.0   1 voto(s)1 voto(s)1 voto(s)1 voto(s)1 voto(s) + quero dar nota ao artigo

Introdução

Bom amigos, primeiramente vamos criar uma nova aplicação. No form1 vamos inserir um componente listview, em seguida vamos clicar em cima da listview1 com o botão direito do mouse e deveremos selecionar o Columns Editor. Agora vamos adicionar 5 colunas. Veja no exemplo abaixo:

Editing ListView1.Columns

0 - PID
1 - Term
2 - Status
3 - Tempo
4 - Linha

O tamanho das colunas devem ficar dessa forma na caixa de propriedades:

PID                 Width: 50
Term                Width: 50
Status              Width: 50
Tempo               Width: 50
Linha de Comando    Width: 500

Agora vamos criar um botão com caption chamado "Processos". Vamos à programação: clique duas vezes sobre o botão.

Vamos declarar na diretiva uses o libc, se essa não for declarada, sua aplicação não poderá extrair dados do sistema. Veja o código abaixo:

interface

uses
  SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs, QStdCtrls, QComCtrls, Libc;

Agora vamos voltar para a procedure do botão:

procedure TForm1.Button1Click(Sender: TObject);
var
  Processos : PIOFile;
  Linha : Array[0..254] of Char;
  LinhaStr : String;
  PosAtu : Integer;
begin
// limpa a Listview
  ListView1.Items.Clear;
// habilita o pipe para leitura para iniciar a  listagem de processos
   Processos := popen('ps axh', 'r');
// processa enquanto puder ler linhas
  while fgets(Linha,255,Processos) <> nil do begin
// converte o PChar para String para facilitar a manipulação dos dados
    LinhaStr := Trim(String(Linha));
    with Listview1.Items.Add do begin
// coloca o inicio da linha em um caption
    PosAtu := Pos(' ',LinhaStr);
    if PosAtu <> 0 then begin
    Caption := Copy(LinhaStr,1,PosAtu-1);
    LinhaStr := Trim(copy(LinhaStr, PosAtu,
    Length(LinhaStr)));
    end
    else begin
    Caption := LinhaStr;
    LinhaStr := '';
    end;
// o restante da linha coloca nos sub-ítens
    while LinhaStr <> '' do begin
    PosAtu := Pos(' ',LinhaStr);
    if PosAtu <> 0 then begin
    SubItems.Add(Copy(LinhaStr,1,PosAtu-1));
    LinhaStr := Trim(copy(LinhaStr, PosAtu,
    Length(LinhaStr)));
    end
    else begin
    SubItems.Add(LinhaStr);
    LinhaStr := '';
    end;
    end;
    end;
  end;
// fecha pipe
  pclose(Processos);
end;

Pronto! Agora é só executar o programa e visualizar os processos.

---------------------------------
Viva a liberdade dos códigos
---------------------------------
Master Foca.





Páginas do artigo
   1. Introdução

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por lorinho em 08/01/2004 - 21:39h:

eu uso o slackware em modo texto, e gostaria de saber como eu faço para listar todos os procesos organizadamente dizendo o nome do login o nome do processo sem listar os processos do linux como o ps -aux =] se souber me informe ficarei mto grato! =] ou mandem um Email RodrigoDCamara@hotmail.com


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.