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 :

Récupérer le numéro de process (PID)


Sujet :

VBScript

  1. #1
    Membre très actif
    Avatar de sroux
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2003
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 162
    Par défaut Récupérer le numéro de process (PID)
    Bonjour,

    Je lance une instance Excel via vbs et je souhaiterai récupérer le PID est-ce possible simplement. A la suite un bref exemple - je ne trouve pas la fonction permettant de récupérer le PID!

    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
    Option Explicit
     
    ' xlPlatform constant declaration
    Const xlMacintosh = 1 
    Const xlMSDOS = 3 
    Const xlWindows = 2 
     
    ' XlTextParsingType
    Const xlDelimited = 1 
    Const xlFixedWidth = 2 
     
    ' XlTextQualifier constant declaration
    Const xlTextQualifierDoubleQuote = 1 
    Const xlTextQualifierNone = -4142 
    Const xlTextQualifierSingleQuote = 2 
     
    ' XlColumnDataType
    Const xlDMYFormat = 4 
    Const xlDYMFormat = 7 
    Const xlEMDFormat = 10 
    Const xlGeneralFormat = 1 
    Const xlMDYFormat = 3 
    Const xlMYDFormat = 6 
    Const xlSkipColumn = 9 
    Const xlTextFormat = 2 
    Const xlYDMFormat = 8 
    Const xlYMDFormat = 5 
     
    ' Paste operation constant declaration
    Const xlPasteAll  = -4104 
    Const xlPasteAllExceptBorders = 7 
    Const xlPasteColumnWidths = 8 
    Const xlPasteComments = -4144 
    Const xlPasteFormats = -4122 
    Const xlPasteFormulas = -4123 
    Const xlPasteFormulasAndNumberFormats = 11 
    Const xlPasteValidation = 6 
    Const xlPasteValues = -4163 
    Const xlPasteValuesAndNumberFormats = 12
     
    ' Paste Special operation constant declaration
    Const xlPasteSpecialOperationAdd = 2 
    Const xlPasteSpecialOperationDivide = 5 
    Const xlPasteSpecialOperationMultiply = 4 
    Const xlPasteSpecialOperationNone = -4142 
    Const xlPasteSpecialOperationSubtract = 3 
     
    ' Variables
    Dim Excelobject
     
    Dim ExcelName
    Dim ExcelHInstance
    Dim ExcelHwnd
     
    'Create an Excel application 
    Set Excelobject = CreateObject("Excel.Application")
    ExcelName = Excelobject.Name
    ExcelHInstance = Excelobject.Hinstance
    ExcelHwnd = Excelobject.Hwnd
     
    Excelobject.visible = true
     
    MsgBox(ExcelName & " - " & ExcelHInstance & " - " & ExcelHwnd)
    Merci d'avance pour votre aide!

    SRoux

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    pourquoi faire le PID .?

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

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    depuis xpsp1, il existe une fonction du kernel32 qui renvoie très simplement le pid à partir du handle du process
    The GetProcessId function retrieves the process identifier of the specified process.

    DWORD GetProcessId(
    HANDLE Process
    );

    Parameters
    Process
    [in] Handle to the process. The handle must have the PROCESS_QUERY_INFORMATION access right.
    Return Values
    If the function succeeds, the return value is the process identifier of the specified process.


    If the function fails, the return value is zero. To get extended error information, call GetLastError
    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

  4. #4
    Membre très actif
    Avatar de sroux
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2003
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 162
    Par défaut
    pourquoi faire le PID .?
    Pour killer le process en cas d'erreur (dans un piège à erreurs...).

    depuis xpsp1, il existe une fonction du kernel32
    Cool mais existe t-il qqchose de plus transverse... applicable sur du 2000 et XP?

    merci

    Sroux

  5. #5
    Membre très actif
    Avatar de sroux
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2003
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 162
    Par défaut
    Est-ce donc si compliqué de récupérer le PID pour le killer ultérieurement?

    SRoux

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

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    Est-ce donc si compliqué de récupérer le PID
    si c'était simple, poserais-tu la question ?
    la solution (depuis w95...) :
    The GetWindowThreadProcessId function retrieves the identifier of the thread that created the specified window and, optionally, the identifier of the process that created the window.

    Syntax

    DWORD GetWindowThreadProcessId( HWND hWnd,
    LPDWORD lpdwProcessId
    );
    Parameters

    hWnd
    [in] Handle to the window.
    lpdwProcessId
    [out] Pointer to a variable that receives the process identifier. If this parameter is not NULL, GetWindowThreadProcessId copies the identifier of the process to the variable; otherwise, it does not.
    Return Value

    The return value is the identifier of the thread that created the window.
    l'appel doit se faire à l'aide du composant dynawrap
    (des exemples sont donnés dans les contributions vbs)
    bien sûr, tu auras noté que la fonction ne renvoie pas directement le pid mais un pointeur vers la variable qui le contient
    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

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    pour finir le mieux c'est de programmer proprement de façon à ne pas avoir à killer l'application

  8. #8
    Membre très actif
    Avatar de sroux
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2003
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 162
    Par défaut
    pour finir le mieux c'est de programmer proprement de façon à ne pas avoir à killer l'application
    En effet... et c'est sur cette réponse que je vais me pencher...

    Bonne journée

    SR

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 21
    Par défaut
    Le sujet date un peu mais il existe une solution trés simple pour avoir l'ID de ton instance excel.

    Tu récupéres la somme des PID de tous tes processus "EXCEL" avant la création de ton instance, et de nouveau la somme des processus "EXCEL" aprés la création de l'instance.

    Tu fais la différence des 2 et tu as ton PID .

    En espérant que ça puisse aider quelqu'un qui tombera sur ce sujet.

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

Discussions similaires

  1. Récupérer le numéro de téléphone entrant
    Par louisss dans le forum Access
    Réponses: 23
    Dernier message: 26/07/2023, 18h21
  2. [C#] Comment récupérer le numéro de semaine d'une date ?
    Par farfadet dans le forum Windows Forms
    Réponses: 9
    Dernier message: 17/07/2013, 16h33
  3. [PDF - FOP - XSL] Récupérer le numéro d'une page
    Par caro. dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/02/2005, 11h35
  4. Comment récupérer le numéro de la semaine ?
    Par claude dans le forum Langage
    Réponses: 7
    Dernier message: 25/06/2004, 15h06
  5. [xml] Récupérer le numéro de la ligne d'erreur d'un fichier
    Par ZoumZoumMan dans le forum C++Builder
    Réponses: 7
    Dernier message: 20/03/2004, 19h09

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