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

VBScript Discussion :

arreter processus WIndows 7


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 88
    Par défaut arreter processus WIndows 7
    Bonjour,


    Je cherche un code qui me permettra d’arrêter un processus (MSACCESS.EXE) s'il existe.
    Après une recherche sur le net j'ai trouvé ce code, mais malheureusement ça marche pas avec WINDOWS 7.
    Merci de m'aider afain d'adapter ce code ou m'orienter vers un autre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" _
        & strComputer & "\root\cimv2")
    Set colProcessList = objWMIService.ExecQuery _
        ("Select * from Win32_Process Where Name = 'excel.exe'")
    For Each objProcess in colProcessList
        objProcess.Terminate()
    Next
     
    Set objWMIService = Nothing
    Set colProcessList = Nothing

  2. #2
    Membre expérimenté
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2011
    Messages : 163
    Par défaut
    Bonjour,

    Qu'est-ce que tu entends par "ça marche pas avec WINDOWS 7" ?
    Le script n'a aucun effet ? Tu obtiens un message d'erreur ?

    Merci de ta précision.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2011
    Messages : 163
    Par défaut
    Anyway, tu peux essayer ça ...

    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
    Set WshShell = CreateObject("WScript.Shell")
    strComputer = "."
    Set objWMIService = GetObject ("winmgmts:\\" & strComputer & "\root\cimv2")
     
    Set colItems = objWMIService.ExecQuery("Select * From Win32_ComputerSystem")
    For Each objItem in colItems
            strCurrentUserName = objItem.UserName
    Next
     
    Set colProcessList = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = 'access.exe'")
    For Each objProcess in colProcessList
            colProperties = objProcess.GetOwner(strNameOfUser,strUserDomain)
            If strUserDomain & "\" & strNameOfUser = strCurrentUserName then
                    objProcess.Terminate()
            end if
    Next

  4. #4
    Membre chevronné Avatar de hariman
    Homme Profil pro
    Développeur Java, Android
    Inscrit en
    Janvier 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Java, Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 200
    Par défaut
    Bonjour,

    Tu veux arrêter le processus "msaccess.exe" ou "excel.exe" ?
    La requête ne devrait-il pas être comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        ...
        ("Select * from Win32_Process Where Name = 'msaccess.exe'")
        ...

  5. #5
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    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
    Const ForAppending=8
      'Vérifie si Wscript est en cours d'exécution, on quitte, sinon on lance le script
      If CheckIfWscriptIsRunning Then Wscript.Quit
      WaitAndLoopForApp(10) ' 10 est le Nombre de secondes d'attente pour rechercher une ' application à terminer. On peut augmenter cette durée.
    Sub FindApp(strApp)
      Set fso = Wscript.CreateObject("Scripting.FilesystemObject")
      set fich = fso.OpenTextFile("C:\ProcessusTermines.log",ForAppending,true) ' Fichier journal
      Set SRVC = GetObject("winmgmts:\\")
      Set ObjServ = SRVC.InstancesOf("Win32_Process")
      For Each myObj In ObjServ
         If LCase(myObj.Name) = LCase(strApp) Then
            'Ecriture dans le fichier journal personnalisé
            Fich.Write myObj.Name +" est en cours d'exécution mais il a été terminé à : " & Now & vbnewline
            ' On ferme l'application et on sort de la boucle
            IF Not (myObj Is Nothing) Then myObj.Terminate() 
            Exit For
         End If
      Next
      Set ObjServ=Nothing
      Set SRVC = Nothing
    End Sub
     
    Sub WaitAndLoopForApp(ByVal Sec)
      start=timer
      do
       i=start+timer
     loop until i-start>=Sec ' On attend un nombre (sec) de secondes pour agir
     If i-Start>=Sec then 
      Do
        FindApp("msaccess.exe")'on cherche le processus msaccess.exe et on l'arrête
        'FindApp("calc.exe")'on cherche le processus calc.exe et on l'arrête
        'FindApp("FireFox.exe")  'on cherche le processus FireFox.exe et on l'arrête
        'FindApp("chrome.exe") 'on cherche le processus chrome.exe et on l'arrête
        'FindApp("Safari.exe") 'on cherche le processus safari.exe et on l'arrête
        Wscript.Sleep 10000
        Set WS=CreateObject("Wscript.Shell")
        Com = "%SystemRoot%\System32\CScript.exe " & Wscript.ScriptFullName
        Result=WS.Run(Com,0,True)
      Loop
     End If
    End Sub
     
    Function CheckIfWscriptIsRunning()  ' Vérifie si Wscript tourne ou non
      Set SRVC = GetObject("winmgmts:\\")
      Set ObjServ = SRVC.InstancesOf("Win32_Process")
      s=""
      For Each myObj In ObjServ
         If LCase(myObj.Name) = "wscript.exe" then
           s= s+ myObj.name + VbCrLf
         End If
        OK=InsTr(1,s,VbCrLf+"wscript.exe",1) '>=1
      Next
      CheckIfWscriptIsRunning=OK
    End Function

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/01/2005, 12h55
  2. [VB6] Forçage de la priorité d'un processus Windows
    Par okyle dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 01/06/2004, 11h27
  3. Arret de windows
    Par jean tof dans le forum C++Builder
    Réponses: 2
    Dernier message: 03/04/2004, 19h53
  4. detection de l'arret de windows
    Par moimoimoi3x dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/03/2004, 06h33
  5. Detection arret de windows
    Par philippe30 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 21/09/2002, 18h41

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