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

VB 6 et antérieur Discussion :

Lister les processus afin de détecter la fin de tâche d'une autre application


Sujet :

VB 6 et antérieur

  1. #1
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut Lister les processus afin de détecter la fin de tâche d'une autre application
    La question :
    Plusieurs opérations étant effectuées par d'autres applications, comment gérer leurs fins de tâche.

    Le contexte :
    L'appli lançant la numérisation sur un scanner, comment savoir quand cette numérisation est terminée.

    Le but de l'appli :
    Enregistrer la numérisation sous forme de fichier jpg

    Le code pour la numérisation :
    La méthode est en VBA Word, lancée depuis VBA Excel (!) (la méthode équivalente ne fonctionnant pas par macro en VBA-E)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Set IMPE = wdApp.Selection.InlineShapes.AddOLEObject(ClassType:="MSPhotoEdScan.3")
    Tout cela fonctionne mais conduit à une temporisation empirique.
    C'est cette temporisation que je souhaiterais voir remplacée par une attente de fin de tâche.

    Application concernée :
    Twain 5.0 EPSON

    Par avance, merci.

    NB - Prière de ne pas déplacer ma discussion.
    Je sais que je ne suis pas sur le bon forum mais, à défaut d'une réponse sur VBA-E, laissez moi une petite place ici

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    qu'est-ce que

    "temporisation empirique"

    ?

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par Vld44
    qu'est-ce que

    "temporisation empirique"

    ?
    Un truc comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Application.Wait (Now + TimeValue("0:01:00"))
    Le temps évalué étant "à peu près" d'une minute, j'ai mis cette tempo mais elle correspond à la numérisation d'un A4 alors que parfois ce seront de "A6" (...)
    A+

  4. #4
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    A tout hasard, pendant la numérisation, le "nom" ou "caption" de ton truc EPSON ne change pas ?
    Parce que sinon tu pourrais regarder toutes les secondes par exemple ce nom et détecter ainsi la fin de numérisation.
    Mais c'est juste une idée à tout hasard, je ne suis pas sûr...

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Non, l'appli Twain Epson reste visible durant toute la numérisation avec sa barre de progression. Prévisualisation -> Numérisation... etc et se ferme l'opération terminée.
    Le pb est que je ne domine pas cette partie lancée par Word.
    Ton idée me paraît bonne mais je ne sais pas aller voir dans le gestionnaire des tâches si l'appli est toujours active.
    Si tu as une solution... merci

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    eh bien en vb6 voilà comment j'aurai fait :

    0) lancer le process avec shell execute, récupérer son handle
    1) do while getprocess <> 0 + doevents

    Je ne détaille pas plus, ça a déjà été traité en double exemplaires au moins.

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Oui, je connais la solution mais en l'occurrence je ne lance pas le process. C'est une méthode VBA Word qui lance l'appli. Je n'ai donc pas d'objet application pour Twain. Mais je peux tester quelque chose. Vérifier dans une boucle l'existence d'une image dans Word...

    Je ne ferme pas tout de suite, il sera toujours temps si ça fonctionne.
    Et si ça fonctionne, merci, tu auras été ma muse sur ce coup là
    A+

  8. #8
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Pour lister les process actifs (si ça peut t'aider) :

    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
     
        Dim svc As Object
        Dim sQuery As String
        Dim oproc
        On Error GoTo Command1_Click_Error
     
        Set svc = GetObject("winmgmts:root\cimv2")
        sQuery = "select * from win32_process"
        For Each oproc In svc.execquery(sQuery)
            Debug.Print oproc.Name & " = " & oproc.ExecutablePath
        Next
        Set svc = Nothing
        Exit Sub
     
    Command1_Click_Error:
        MsgBox "Error " & Err.Number & " (" & Err.Description & ")"
        Err.Clear

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Merci pour ton code, pc75, c'est à ça que je pensais.
    Je travaille donc sur l'identification du process correspondant à Twain dans le gestionnaire des tâches.
    Je teste avant, pendant et après lancement du scan pour comparer les process actifs mais pour l'instant je n'ai pas trouvé.
    Je reviens avec une réponse.


    NB - Pour la solution consistant à tester la présence d'une image dans Word, ça ne fonctionne pas. A peine la méthode sollicité (non exécutée encore) qu'une image est identifiée dans Word. Ceci même si elle n'existe pas encore et que la numérisation n'est pas encore exécutée.

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Bon, eh bien c'est pas gagné. En fait, Word utilise une méthode qui utilise une méthode de Microsoft PhotoEditor... Bref, Microsoft PhotoEditor apparaît dans le gestionnaire des tâches, pas la méthode qu'il utilise (!). C'est évident. J'espérais qu'il lance Twain avec des paramètres à lui
    Je ne m'avoue pas battu mais je dois chercher autre chose.
    Merci à vous.

    Bon, je mets résolu, PC75 m'ayant donné le code qui répond à ma question.

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

Discussions similaires

  1. Lister les processus
    Par dessda dans le forum Langage
    Réponses: 4
    Dernier message: 09/01/2007, 16h50
  2. [VB.NET 2.0] Comment lister les processus sur PPC ?
    Par catzguy dans le forum Windows Mobile
    Réponses: 6
    Dernier message: 16/04/2006, 00h38
  3. Lister les processus et les PID dans une listview .
    Par maxoudu328 dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 16/10/2005, 16h03
  4. [reseaux] Lister les processus sur une machine donnée
    Par BEAUJAULT dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 29/07/2004, 15h55

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