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 XP Discussion :

Avec quoi développer un petit service de surveillance ?


Sujet :

Windows XP

  1. #1
    Membre actif
    Homme Profil pro
    Programmeur fou
    Inscrit en
    Octobre 2010
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Programmeur fou

    Informations forums :
    Inscription : Octobre 2010
    Messages : 339
    Points : 216
    Points
    216
    Par défaut Avec quoi développer un petit service de surveillance ?
    Bonjour les amis,

    Avec quoi développer un petit service de surveillance d'un process, svp ?

    Je suis en train de tester un logiciel qui, quand il se plante, laisse Word tout seul dans un coin de la liste de mes process en cours.

    Quand on relance le logiciel, on crée une 2e instance de Word, qui pose UN problème de fichier normal.dot verrouillé en écriture au moment où on sort du logiciel (ce qui est somme toute normal)

    Je voudrais écrire un petit service qui surveille le nombre de process de Word et quand ce nombre est supérieur à 1 je reçois un message.

    Evident pour les Wizards de C++, .NET et autres trucs de pros, mais pour moi... à part php et VBScript, je suis nul.

    Merci pour vos conseils.
    A++
    à la retraite, occupé à apprendre Blender pour pondre des bagnôles pour FS22 (voir Papocle.fr)

  2. #2
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 939
    Points : 23 253
    Points
    23 253
    Billets dans le blog
    10
    Par défaut
    Bonsoir

    Auteur : CalistX :

    Cette fonction permet de savoir à tout moment si un programme (ex: c:\windows\sol.exe) est lancé ou non (en analysant les processus). Elle a l'avantage de ne pas fonctionner que sur NT (comme l'API Module32Next).
    Code original de l'API-Guide (http://www.allapi.net) que j'ai légerement retouché.


    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
     Original code from API-Guide (http://www.allapi.net)
    2.' Modified by CalistX (calistx@ifrance.com)
    3.' Requires Windows 2000 or later; Requires Windows 95 or later
    4.
    5.Public Declare Function CreateToolhelp32Snapshot Lib "Kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
    6.Public Declare Function Process32First Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
    7.Public Declare Function Process32Next Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
    8.Public Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)
    9.
    10.Const TH32CS_SNAPHEAPLIST = &H1
    11.Const TH32CS_SNAPPROCESS = &H2
    12.Const TH32CS_SNAPTHREAD = &H4
    13.Const TH32CS_SNAPMODULE = &H8
    14.Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
    15.Const TH32CS_INHERIT = &H80000000
    16.Const MAX_PATH As Integer = 260
    17.
    18.Public Type PROCESSENTRY32
    19.    dwSize As Long
    20.    cntUsage As Long
    21.    th32ProcessID As Long
    22.    th32DefaultHeapID As Long
    23.    th32ModuleID As Long
    24.    cntThreads As Long
    25.    th32ParentProcessID As Long
    26.    pcPriClassBase As Long
    27.    dwFlags As Long
    28.    szExeFile As String * MAX_PATH
    29.End Type
    30.
    31.Public Function CheckEXE(ByVal EXE As String) As Boolean
    32.    Dim hSnapShot As Long, uProcess As PROCESSENTRY32
    33.    
    34.    hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&)
    35.    uProcess.dwSize = Len(uProcess)
    36.    r = Process32First(hSnapShot, uProcess)
    37.    Do While r
    38.        FileName = Left$(uProcess.szExeFile, IIf(InStr(1, uProcess.szExeFile, Chr$(0)) > 0, InStr(1, uProcess.szExeFile, Chr$(0)) - 1, 0))
    39.        If FileName = UCase(EXE) Then CheckEXE = True: Exit Function
    40.        r = Process32Next(hSnapShot, uProcess)
    41.    Loop
    42.    CloseHandle hSnapShot
    43.End Function
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  3. #3
    Membre actif
    Homme Profil pro
    Programmeur fou
    Inscrit en
    Octobre 2010
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Programmeur fou

    Informations forums :
    Inscription : Octobre 2010
    Messages : 339
    Points : 216
    Points
    216
    Par défaut
    merci Msieu

    (le site de l'Allapi n'existe plus)

    EDIT : je ne vois pas où on précise le nom du process à surveiller

    EDIT2 : j'ai installé VB express 2008, j'ai 77 erreurs à la compile. Ca doit pas être du VB...
    (oui, j'ai enlevé les numéros de ligne)
    à la retraite, occupé à apprendre Blender pour pondre des bagnôles pour FS22 (voir Papocle.fr)

  4. #4
    Membre chevronné Avatar de Guardian
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    820
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 820
    Points : 1 808
    Points
    1 808
    Par défaut
    Tu peux éventuellement avoir recours à TASKLIST via un batch pour trouver les processus actifs et TASKKILL pour terminer le processus qui pose problème.

    ps : tu peux aussi faire un raccourci qui lance taskkill et word comme ça tu seras sûr de "tuer" la première instance, mais il y a des risques ("tuer" un word qui ne devrait pas l'être)

  5. #5
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 939
    Points : 23 253
    Points
    23 253
    Billets dans le blog
    10
    Par défaut
    C'est du VB6.

    Demande sur ce forum dans la section VB si tu peux avoir quelques renseignements par exemple sous XP il y a une ligne avec le nom du programme qu'il faut changer.

    Celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If FileName = UCase(EXE) Then CheckEXE = True: Exit Function
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If UCase(FileName) = UCase(EXE) Then CheckEXE = True: Exit Function
    Tourne sous XP Pro SP1

    La dernière mise à jour de Visual Basic est la version 6.0, sortie en 1998. Le support étendu Microsoft a pris fin en 2008. À partir de la version 7, le Visual Basic subit des changements substantiels le rapprochant de la plate-forme « dot Net », et qui amènent Microsoft à le commercialiser sous le nom de Visual Basic .NET.
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  6. #6
    Membre actif
    Homme Profil pro
    Programmeur fou
    Inscrit en
    Octobre 2010
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Programmeur fou

    Informations forums :
    Inscription : Octobre 2010
    Messages : 339
    Points : 216
    Points
    216
    Par défaut
    Merci les copains, je vais voir là-bas.
    à la retraite, occupé à apprendre Blender pour pondre des bagnôles pour FS22 (voir Papocle.fr)

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/04/2016, 15h13
  2. Petit service de surveillance de process
    Par Toulousaing dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 10/06/2012, 21h18
  3. Réponses: 10
    Dernier message: 26/08/2010, 11h42
  4. Avec quoi créer une petite BDD ? [Appli Delphi 2007]
    Par pepito62 dans le forum Bases de données
    Réponses: 5
    Dernier message: 08/07/2008, 19h37

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