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 :

Procces notepad restant actif.


Sujet :

VBScript

  1. #1
    Candidat au Club
    Inscrit en
    Février 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Procces notepad restant actif.
    Bonjour a tous

    J'ai un petit scripts qui m'extrait des informations du journal d'evenment windows pour en faire un fichier texte. ce fichier texte etant lui meme exploité par un autre scripts sur une autre machin. le tout etant automatisé.

    Mon probleme est qu'il y a un process notepad qui se créer a chaque execution et qui reste par la suite actif. ce qui sature la machine au bout de quelque execution.

    voici la source:
    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
     
    'Lecture des enregistrements des journaux d'événements de Windows
    On Error Resume Next 
    'Création fichier resultat 
    Dim resultat : resultat =  "\\machine_unix\rapport_sauvegarde\rapport_" & wscript.arguments(0) & ".txt"
    Dim Fso      : Set Fso = CreateObject("Scripting.fileSystemObject") 
    Dim Rapport  : Set Rapport = Fso.openTextFile(resultat, 2, True) 
     
    Dim strComputer, objWMIServices, objWMIObjectSet, objWMIObject    
    strComputer = "machine_windows" 
    Set objWMIServices  = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
    Set objWMIObjectSet = objWMIServices.ExecQuery _ 
        ("Select * from Win32_NTLogEvent Where LogFile='Application'And Category='3'  ")
    For Each objWMIObject In objWMIObjectSet
    If DateDiff("h", clair(objWMIObject.TimeGenerated),now ) <= 24 Then
    Rapport.writeLine " " & objWMIObject.Message
    Rapport.writeLine "FINLOG"
    End If
     
    Next
    Rapport.Close
    Set Rapport = Nothing
    Set fso = Nothing : Set Rapport = Nothing
    Set objWMIObjectSet = Nothing : Set objWMIServices  = Nothing
    Dim WshShell : Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run resultat
    Set WshShell = Nothing
    WScript.Quit
     
    Function clair(temps)
    'tranformation de la date "aaaammjjhhmnss" en jj/mm/aaaa hh:mn
    Dim debut, an, mois, jour, hhmn
    	debut = left(temps,8)
    	an = left(debut,4)
    	mois = mid(debut,5,2)
    	jour = right(debut,2)
    	hhmn = " " & Mid(temps,9,2) & ":" & Mid(temps,11,2) & ":" & Mid(temps,13,2) 
    	clair = CStr(mois) & "/" & CStr(jour) & "/" & CStr(an) & CStr(hhmn)
    	'MsgBox temps &vbCrLf& clair
    End function

    voila tout fonctionne parfaitement, les evenements traitant des sauvegardes des 24 dernieres heures sont extrait vers le fichiers text sans soucis, il a juste le process notepad qu'il reste. comment faire pour ne plus avoir le process apres l'execution du scripts?

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    bonjour,
    le script lance le notepad parce qu'il est bête et discipliné
    sinon supprime cette ligne
    ou mieux encore, supprime:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set Rapport = Nothing
    Set fso = Nothing : Set Rapport = Nothing
    Set objWMIObjectSet = Nothing : Set objWMIServices = Nothing
    Dim WshShell : Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run resultat
    Set WshShell = Nothing
    WScript.Quit
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Candidat au Club
    Inscrit en
    Février 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup je teste de suite.
    J'avou je ne connais pas du tout le VB et ce bout de script n'est qu'un assemblage de solution trouvé sur le net pour repondre a mon besoin.

Discussions similaires

  1. Tester si un process est encore actif
    Par Damien2212 dans le forum Windows
    Réponses: 2
    Dernier message: 17/09/2004, 15h33
  2. JScrollPane non actif (layout)
    Par Oliveuh dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 21/07/2004, 10h50
  3. Comment lister les exécutables actifs ?
    Par Lung dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 15/04/2004, 13h03
  4. Réponses: 5
    Dernier message: 14/01/2004, 20h31
  5. Réponses: 2
    Dernier message: 04/10/2002, 09h13

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