Comment travailler avec le ID d'une tâche ?

iBenny Messages postés 96 Date d'inscription   Statut Membre Dernière intervention   -  
iBenny Messages postés 96 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Avec Word 2003 sur Windows 10, est-il possible de lire le no de processus d'une tâche et d'appeler ultérieurement ladite tâche avec son ID (PID) et non avec son nom ?

Merci d'avance pour votre aide !
iBenny

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
que veux-tu dire par "appeler une tâche"? faire appel, ou la nommer?
veux-tu identifier une tâche par son nom, mémoriser son PID, et ensuite la retrouver (pour en faire quoi?) par son PID?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
si le contexte est limité à l'utilisation de "tasks" en VBA de Word,
je ne vois pas trop comment on pourrait même récupérer le pid, encore moins l'utiliser ensuite.
Tu n'expliques pas où et comment le pid serait mémorisé.
Je ne peux donc pas déterminer si tu ne pourrais pas simplement mémoriser et réutiliser une variable de type "task".
0
iBenny Messages postés 96 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour yg_be,

On peut trouver le PID d'un processus avec le gestionnaire de tâche de Windows ou avec System Explorer.

Dans VBA, on peut appeler un programme quand on a son nom (nom de programme) avec

Tasks("nomdeprog").activate

Existe-t-il une instruction pour indiquer le PID de ce programme/processus et le stocker dans une variable single :

Dim Pide as single
Pide = instruction qui trouve le PID de la Tasks("nomdeprog")

afin de (si ça existe) pouvoir appeler (activer) la Tasks("nomdeprog") en utilisant la variable Pide au lieu de son nom "nomdeprog" ?

Si c'est pas encore clair, n'hésite pas à me redemander...

Merci de ton aide
iBenny
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
Tu ne peux pas faire précisément cela via les "Tasks" de Word VBA.

Difficile de faire une suggestion sans que tu expliques ce que tu veux obtenir, fonctionnellement, via cette méthode.

Tu peux stocker une tâche dans une variable, au lieu de stocker le PID. Cela te permet ensuite d'activer la tâche en utilisant la variable stockée.
Aucune idée si cela répond à ton besoin.
0
iBenny Messages postés 96 Date d'inscription   Statut Membre Dernière intervention   2 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour vg_be,

"Difficile de faire une suggestion sans que tu expliques ce que tu veux obtenir, fonctionnellement, via cette méthode."

Ce que je veux obtenir fonctionnellement ? Activer une application dont le nom de la täche varie mais pas son PID !

Si je veux activer une tâche dont le début du nom varie mais pas la fin du nom qui est le nom du programme, je dois avant chaque appel scanner TOUTES les tâches (For each T in Tasks) et faire une recherche dans le nom de chaque tâche (T.name) pour savoir si c'est bien l'appli que je cherche (instr(T.name, "nomduprog")). J'utilise ensuite le nom trouvé pour activer la tâche (Tasks(T.name).Activate).

Si je pouvais identifier le no du processus de la tâche (PID), je pourrait y faire référence, si il existe un instruction pour faire ça, car même si le nom de la tâche change, le no de son processus lui ne change pas.

Mon problème après ça sera de voir si c'est faisable de conserver une valeur de variable entre chaque appel d'une procédure VBA, genre déclarer la variable comme permanente dans la section de déclaration globale au début du code.

Merci de votre aide,
iBenny
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > iBenny Messages postés 96 Date d'inscription   Statut Membre Dernière intervention  
 
pourquoi, comme suggéré ici et à nouveau en #4, ne pas faire
T.Activate
?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
cela ne fonctionnera probablement pas si le nom de la tâche change pendant l'exécution de ton programme.
0
iBenny Messages postés 96 Date d'inscription   Statut Membre Dernière intervention   2 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Rép au #6:

Pour faire cela, comme dit en #5, je dois au préalable éplucher TOUTES les tâches à chaque fois pour identifier la bonne täche.
0