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

Windows Discussion :

kill un process


Sujet :

Windows

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

    Informations forums :
    Inscription : Août 2007
    Messages : 20
    Points : 15
    Points
    15
    Par défaut kill un process
    bonjour / bonsoir
    j'ai deux petites questions.
    enfaite j'ai deux programmes,
    le deuxieme est lancé par le premier et le premier est celui qui ferme le deuxieme
    alors pour executer le deuxieme depuis le premier CreateProcess est la bonne solution ?
    et alors comment le fermer apres l'avoir creer ? TerminateProcess ?
    et le deuxieme na rien de l'api win et je voudrai qu'il ce lance en tache de fond comme un démon donc sans que la console (cmd.exe) ce lance comment je doit proceder

  2. #2
    Membre averti Avatar de zabibof
    Inscrit en
    Février 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 188
    Points : 344
    Points
    344
    Par défaut
    Citation Envoyé par Co2r76
    alors comment le fermer apres l'avoir creer ? TerminateProcess ?
    Citation Envoyé par MSDN
    The preferred way to shut down a process is by using the ExitProcess function, because this function sends notification of approaching termination to all DLLs attached to the process. Other means of shutting down a process do not notify the attached DLLs. Note that when a thread calls ExitProcess, other threads of the process are terminated without an opportunity to execute any additional code (including the thread termination code of attached DLLs). For more information, see Terminating a Process.
    Citation Envoyé par MSDN
    The TerminateProcess function is used to unconditionally cause a process to exit. The state of global data maintained by dynamic-link libraries (DLLs) may be compromised if TerminateProcess is used rather than ExitProcess.

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

    Informations forums :
    Inscription : Août 2007
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    ExitProcess permet de quitter le programme en entier pas seulement le processus (le deuxieme) que je lance a partir du premier :/

  4. #4
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 379
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 379
    Points : 20 447
    Points
    20 447
    Par défaut
    Co2R76 il faut éviter ExitProcess et TerminateProcess.
    En général on utilise WaitForSingleObject ou WaitForMultipleObject qui reçoit une notification du Process.
    Pour arrêter le process soit on poste un message personnifié avec WM_USER soit on passe par une variable globale ( un booléen par exemple )
    et le deuxieme na rien de l'api win et je voudrai qu'il ce lance en tache de fond comme un démon donc sans que la console (cmd.exe) ce lance comment je doit proceder
    -> faire un SERVICE

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

    Informations forums :
    Inscription : Août 2007
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    ba je vois pas comment je pourai faire pour une variable global car les deux soft sont completement independant a part foutre un "truc" ds un fichier et lire ce fichier en boucle a la recherche du "truc" qui dit qu'il faut fermer :/ un peut bidon quoi

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

    Informations forums :
    Inscription : Août 2007
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    peut etre que si j'expliquai ce que je voudrai aussi ....
    enfaite j'ai un bot irc portable windows/linux et pour linux j'ai un sh avec start stop pour le lancer et le stoper et pour windows je voudrai juste coder un pti soft (en plus) qui ne sera rien d'autre qu'une icone dans le systray avec un clik droit start/stop pour lancer ou stoper mon bot irc
    je cherche quelle solution serai la meilleur

  7. #7
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 468
    Points
    468
    Par défaut
    J'ai lu que tu ne voulais pas utiliser CMD mais si ça n'est pas un impératif, j'ai utiliser une méthode avec CMD en VB.NET qui fonctionne bien pour killer Explorer.
    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
            Dim TerminerProcessus() As Process = Process.GetProcesses
            For x As Integer = 0 To UBound(TerminerProcessus)
    
                If TerminerProcessus(x).ProcessName.ToString = "processus_à_killer" Then
    
                    Using sw As StreamWriter = New StreamWriter(chemin_du_fichier_batch)
                        sw.WriteLine("taskkill /F /IM processus_à_killer")
                        sw.Close()
                        sw.Dispose()
                    End Using
    
                    Dim objProcess As System.Diagnostics.Process
                    objProcess = New System.Diagnostics.Process()
                    objProcess.StartInfo.FileName = "chemin_du_fichier_batch"
                    objProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
                    objProcess.Start()
                    objProcess.WaitForExit()
                    objProcess.Close()
                    objProcess.Dispose()
    
                    File.Delete(chemin_du_fichier_batch_à_supprimer)
                End If
            Next
    PS : pour info, TASKKILL.EXE n'est pas dispo avec Win XP Home mais peut y être ajouter par un simple copier/coller ds le repertoire "system32".

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    J'ai posté ici un inventaire des façons de tuer un process:
    http://www.developpez.net/forums/sho...62&postcount=4

Discussions similaires

  1. [11gR2] Ordonnancement des KILL de PROCESS ORACLE
    Par croboonz dans le forum Administration
    Réponses: 2
    Dernier message: 28/04/2015, 14h41
  2. Kill auto Process users
    Par kamsy dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 11/02/2014, 07h55
  3. kill un process (16 bits) sous XP en VBScript
    Par zinestyle dans le forum VBScript
    Réponses: 10
    Dernier message: 15/04/2010, 19h07
  4. Kill de process serveur
    Par D_light dans le forum Oracle
    Réponses: 6
    Dernier message: 16/03/2007, 16h41
  5. [Kill]tuer un process
    Par parisjohn dans le forum C
    Réponses: 9
    Dernier message: 27/08/2004, 14h26

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