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 :

Comment faire pour killer une application ?


Sujet :

API, COM et SDKs Delphi

  1. #1
    tintin22
    Invité(e)
    Par défaut Comment faire pour killer une application ?
    Comment faire pour tuer un programme en cours d'execution (avec son nom d'exe) sous windows 2000 pro ? j'ai essayé les codes qui marchent pour 9x/Me, mais ça marche pas pour windows 2000 pro.
    Merci

  2. #2
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut
    Tiens, essaye ça, j'ai win2k mais apparement ça marche sur tous les windows
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    uses Tlhelp32;
     
    function KillTask(ExeFileName: string): Integer;
    const
      PROCESS_TERMINATE = $0001;
    var
      ContinueLoop: BOOL;
      FSnapshotHandle: THandle; 
      FProcessEntry32: TProcessEntry32;
    begin
      Result := 0;
      FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
      FProcessEntry32.dwSize := SizeOf(FProcessEntry32); 
      ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
     
      while Integer(ContinueLoop) <> 0 do
      begin
        if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
          UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = 
          UpperCase(ExeFileName))) then
          Result := Integer(TerminateProcess(
                            OpenProcess(PROCESS_TERMINATE, 
                                        BOOL(0),
                                        FProcessEntry32.th32ProcessID),
                                        0));
         ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
      end; 
      CloseHandle(FSnapshotHandle);
    end;
     
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      KillTask('wmplayer.exe');
    end;

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    je sais pas si sa peut t'aider pareil mais j'ai un code qui ferme un proceccus a l'aide du nom de la fenetre....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Procedure KillProgOfWindow(LeHandle: THandle);
    var ProcessId: DWORD;
        HandleProcess: THandle;
    begin
            GetWindowThreadProcessId(LeHandle, @ProcessId);
            If ProcessId<>0 then
            begin
                    HandleProcess:=OpenProcess(PROCESS_TERMINATE, False, ProcessId);
                    TerminateProcess(HandleProcess, 0);
            end;
    end;
    pour l'appeler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var
    MonHandle : HWND;
    begin
    MonHandle := FindWindow(ClassName,Nom de la fenetre);
    KillProgOfWindow(MonHandle);
    end;

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    j'utilise un code similaire a lil_jam sous windows 2000 donc je confirme il marche tres bien

  5. #5
    tintin22
    Invité(e)
    Par défaut
    Merci pour vos reponses
    lil_jam63, c'est le code que j'avais qui ne marchait pas ! en fait, c'etait tout bête, d'un coté j'avais ExeFileName:='c:\program files\toto.exe' et de l'autre c'est uniquement 'toto.exe' puisqu'il y a un ExtractFileName !! voila c'est tout

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/12/2011, 20h54
  2. Réponses: 8
    Dernier message: 17/04/2009, 18h16
  3. Réponses: 2
    Dernier message: 22/10/2007, 14h33
  4. Réponses: 2
    Dernier message: 27/03/2007, 07h42
  5. comment faire pour qu'une application soit toujours visible ?
    Par goldbar dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 28/03/2004, 14h35

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