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

Access Discussion :

Tuer des processus par leur nom


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 117
    Points : 44
    Points
    44
    Par défaut Tuer des processus par leur nom
    Bonjour,

    j'aimerais pouvoir tuer des processus ou plutôt tous les processus ayant un certain nom. Une sorte de KillAll "truc.exe".
    Ca existe ??

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut Sans garanties. A tester ...
    Bonsoir,

    voici un code qui fonctionne sur mon PC (XP).
    Attention : C'est violent. Si l'appli à 'tuer' n'a pas sauvé ses données elles sont perdues.
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    Type strucPROCESSENTRY32
      dwSize As Long              ' DWORD : Size of the structure, in bytes
      cntUsage As Long            ' DWORD : not used (0)
      th32ProcessID As Long       ' DWORD : PID
      th32DefaultHeapID As Long   ' ULONG_PTR : not used (0)
      th32ModuleID As Long        ' DWORD : not used (0)
      cntThreads As Long          ' DWORD : Threads
      th32ParentProcessID As Long ' DWORD : parent process ID
      pcPriClassBase As Long      ' LONG
       dwFlags As Long             ' LONG : not longer used (0)
      szExeFile As String * 512   ' TCHAR szExeFile[MAX_PATH] name of the executable file for the process
    End Type
    
    Const TH32CS_SNAPPROCESS As Long = &H2
    Const PROCESS_TERMINATE As Long = &H1
    Const PROCESS_QUERY_INFORMATION As Long = &H400
    
    Private Declare Function CreateToolhelp32Snapshot Lib "Kernel32.dll" _
           (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
    
    Private Declare Function Process32First Lib "Kernel32.dll" _
            (ByVal hSnapshot As Long, ByRef lppe As strucPROCESSENTRY32) As Long
    
    Private Declare Function Process32Next Lib "Kernel32.dll" _
            (ByVal hSnapshot As Long, ByRef lppe As strucPROCESSENTRY32) As Long
    
    Private Declare Function OpenProcess Lib "Kernel32.dll" _
            (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    
    Private Declare Function CloseHandle Lib "Kernel32.dll" (ByVal hObject As Long) As Long
    
    Private Declare Function TerminateProcess Lib "Kernel32.dll" _
            (ByVal hProcess As Long, ByVal dwExitCode As Long) As Long
            
    ' _____________________________________________________
    Sub TermProcess(strProcessName As String)
    Dim hSnapshot As Long, lppe As strucPROCESSENTRY32
    Dim hProc As Long, Retval As Long, strPrcsName As String
    
    hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
    lppe.dwSize = Len(lppe)
    Retval = Process32First(hSnapshot, lppe)
    
    Do While Retval
       strPrcsName = Left(lppe.szExeFile, InStr(1, lppe.szExeFile, vbNullChar) - 1)
       ' Debug.Print strPrcsName, lppe.th32ProcessID
       If strPrcsName Like strProcessName Then
          hProc = OpenProcess(PROCESS_TERMINATE, 0, lppe.th32ProcessID)
          If hProc <> 0 Then
             Retval = TerminateProcess(hProc, 0)
             ' Si Retval=0 échec de la fonction TerminateProcess(..)
             Call CloseHandle(hProc)
          End If
       End If
       ' Process Suivant
       Retval = Process32Next(hSnapshot, lppe)
    Loop
    
    Call CloseHandle(hSnapshot)
    
    End Sub
    ' _____________________________________________________
    Sub Test()
        TermProcess "EXCEL.EXE"
    End Sub
    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 117
    Points : 44
    Points
    44
    Par défaut
    merci c'est résolu, ca marche nickel !

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

Discussions similaires

  1. chart : manipuler des series par leurs noms
    Par petitours dans le forum C#
    Réponses: 2
    Dernier message: 16/03/2012, 08h56
  2. Recherche des fichiers par leurs noms
    Par hackoofr dans le forum Vos Contributions VBScript
    Réponses: 0
    Dernier message: 26/05/2011, 12h08
  3. [XL-2002] Accéder à des boutons par leur nom
    Par miron dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 08/07/2009, 14h31
  4. [VBA]filtrage des controles sur leur nom
    Par Invité dans le forum VBA Access
    Réponses: 5
    Dernier message: 17/04/2007, 14h23
  5. comment récupere des element par le nom de la balise?
    Par MASSAKA dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/08/2005, 19h59

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