IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Lister les processus et les PID dans une listview .


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 33
    Points : 12
    Points
    12
    Par défaut Lister les processus et les PID dans une listview .
    Bonjour voila je voudrais lister tous les processus actif et leur PID correspondant dans une listview avk 2 collones [Processus|PID] bon j'aarive a liste dans une listbox tous les processus et dans une autres tous les PID seulement je voudrais qu'il soit lier pour pouvoir terminer un processus selon son PID mais lorsque j'ajoute les proc et pid a la listview avec ce bout de code :

    procedure TForm1.Button2Click(Sender: TObject);
    var
    Hdl: HWND;
    entry : PROCESSENTRY32;
    ID : cardinal;
    ListAjout : TListItem;
    begin
    Listbox1.Clear;
    hdl := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    entry.dwSize := sizeof(entry);
    ListAjout := ListView1.Items.Add;
    if Process32First(hdl,entry) then
    Begin;
    with listview1 do
    Begin
    ListAjout.Caption := (entry.szExeFile);
    ListAjout.SubItems.Add(inttostr(entry.th32ProcessID));
    Listbox1.items.add(entry.szexefile); // ajouter a une Tlistbox
    Listbox2.items.add(inttostr(entry.th32ProcessID));
    while Process32next(hdl,entry) do
    begin
    //ListAjout.Caption := (entry.szExeFile);
    //ListAjout.SubItems.Add(inttostr(entry.th32ProcessID));
    listbox1.items.add(entry.szexefile); // ajouter a une Tlistbox
    Listbox2.items.add(inttostr(entry.th32ProcessID));
    {with Form1.ListView1.Items do
    begin
    ListAjout.Caption := (entry.szExeFile);
    ListAjout.subitems.add(inttostr(entry.th32ProcessID));
    end;}
    application.ProcessMessages;
    end;


    End;
    Closehandle(hdl);
    end;
    end;
    Ce bout de code contient aussi la fonction pour les listbox, donc quand j'utilise ce code je n'ajoute que le premier processus et que le premier pid... Je vous est fait une ptite ScreenShot :



    Donc je pence qu'il faut fair une boucle si vour pouriez m'aide sa serait super simpa .

    Un grand merci d'avance car je galere trop la .

    Cordialemen, max

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Si tes listes s'appellent ListeProcessus et ListPID, tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for i:=0 to ListProcessus.Items.Count-1 do
    begin
      //Ici tu récupères le i-ème Item de ta liste
    end;
    Voila j'espère ne pas avoir répondu à coté de la plaque...
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 33
    Points : 12
    Points
    12
    Par défaut
    Hummm je capte pas trop ton truc, toi tu veut que je recupere les items de smes listbox ??

    Moi je voudrais recuperais directement les proc de :

    ListAjout.Caption := (entry.szExeFile);
    ListAjout.SubItems.Add(inttostr(entry.th32ProcessID));
    Par exemple enfin sans utiliser d'autre box en tout genre si tu vois sque je veut dire :-) .

    Sinon tu pourait mieume detailler ton code, parceque j'ai commence delphi il y a 2 jr .

    Cordialement, Max

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Ah ok j'ai compris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    with Form1.ListView1.Items do
    begin
    ListAjout.Caption := (entry.szExeFile);
    ListAjout.subitems.add(inttostr(entry.th32ProcessID));
    end;
    Si tu fais ça: tu modifies le dernier ListAjout créé... Soit le dernier créé dans ListView1...
    Si tu veux ajouter un Item, il faut que tu appelles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ListAjout:=ListBox1.Add;
    a chaque fois... ListAjout est en fait un pointer sur l'Item que tu viens d'ajouter...
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 33
    Points : 12
    Points
    12
    Par défaut
    non ta toujour pas compris ....

    Oublie ma listbox je veut plus l'utiliser, je l'utiliser juste avant parceque je connaisser pas le listview et que maintenant je veu lier les pid et les proc donc ou oublie le listbox.

    Je veut lister tous les proc et leur pid dans le listview si tu jeter un coup d'oeil a ma screenshot tu comprendre mieu et la fonction :

    {with Form1.ListView1.Items do
    begin
    ListAjout.Caption := (entry.szExeFile);
    ListAjout.subitems.add(inttostr(entry.th32ProcessID));
    end;}
    N'est pas utiliser si tu regarde bient elle est entre {} .



    mon probleme c'est que :

    mon code n'ajoute que le premier proc et le premier PID ....

    STp regarde bien ma source parceque plusieur bout son en commentaire et donc desactivé .

    Cordialement, max

    Ps: n'oublie pas ma ScreenShot elle est trés ^parlante.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 33
    Points : 12
    Points
    12
    Par défaut
    Donc, merci a pedro204 pour son aide, et voici la sources qui marche au cas ou ya d'autre pti gars qui se font chier comme moi :

    procedure TForm1.Button2Click(Sender: TObject);
    var
    Hdl: HWND;
    entry : PROCESSENTRY32;
    ID : cardinal;
    ListAjout : TListItem;
    begin
    Listbox1.Clear;
    hdl := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    entry.dwSize := sizeof(entry);
    begin
    Hdl := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    Entry.dwSize := sizeof(entry);
    if Process32First(Hdl,Entry) then
    Begin
    while Process32next(Hdl,Entry) do
    begin
    ListAjout:=ListView1.items.Add;
    ListAjout.Caption:=Entry.szExeFile;
    ListAjout.SubItems.Add(inttostr(Entry.th32ProcessID));
    Application.ProcessMessages;
    End;
    end;
    Closehandle(Hdl);
    end;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lister les fichiers d'un répertoire dans une feuille Excel
    Par AlainTech dans le forum Contribuez
    Réponses: 3
    Dernier message: 10/03/2016, 14h14
  2. Lister les fichiers d'un répertoire dans une feuille Excel
    Par Kriss63 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/04/2011, 14h54
  3. Réponses: 12
    Dernier message: 14/05/2008, 17h15
  4. Réponses: 2
    Dernier message: 06/04/2007, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo