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

Fermé
iBenny Messages postés 98 Date d'inscription lundi 23 janvier 2012 Statut Membre Dernière intervention 3 avril 2022 - 25 avril 2021 à 01:28
iBenny Messages postés 98 Date d'inscription lundi 23 janvier 2012 Statut Membre Dernière intervention 3 avril 2022 - 27 avril 2021 à 15:43
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 20741 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 novembre 2022 1 268
25 avril 2021 à 20:11
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 20741 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 novembre 2022 1 268
25 avril 2021 à 20:44
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 98 Date d'inscription lundi 23 janvier 2012 Statut Membre Dernière intervention 3 avril 2022 1
25 avril 2021 à 23:30
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 20741 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 novembre 2022 1 268
26 avril 2021 à 10:03
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 98 Date d'inscription lundi 23 janvier 2012 Statut Membre Dernière intervention 3 avril 2022 1 > yg_be Messages postés 20741 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 novembre 2022
Modifié le 26 avril 2021 à 17:11
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 20741 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 novembre 2022 1 268 > iBenny Messages postés 98 Date d'inscription lundi 23 janvier 2012 Statut Membre Dernière intervention 3 avril 2022
26 avril 2021 à 18:17
pourquoi, comme suggéré ici et à nouveau en #4, ne pas faire
T.Activate
?
0
yg_be Messages postés 20741 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 novembre 2022 1 268 > yg_be Messages postés 20741 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 novembre 2022
26 avril 2021 à 18:26
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 98 Date d'inscription lundi 23 janvier 2012 Statut Membre Dernière intervention 3 avril 2022 1 > yg_be Messages postés 20741 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 novembre 2022
26 avril 2021 à 22:23
Rép au #7 :

J'ai vérifié avec System Explorer et le PID ne change pas même le nom de la tâche change...
0