Process.Start(), seconde execution ne retourne pas de process
Lionel de Geneve
Messages postés4Date d'inscriptionmercredi 24 août 2005StatutMembreDernière intervention 8 septembre 2008
-
2 sept. 2008 à 14:08
Lionel de Geneve
Messages postés4Date d'inscriptionmercredi 24 août 2005StatutMembreDernière intervention 8 septembre 2008
-
8 sept. 2008 à 12:31
Bien le bonjour,
Après d'infructueuse recherche je vous soumet un problème...
L'objectif et de récupérer le processus exécuté, lors du démarrage d'un processus, pour pouvoir plus loin mettre la fenêtre de ce même processus en avant !
Un exemple de code:
<hr size="2" width="100%" /> public static System.Diagnostics.Process NewExecuteFile(string path)
{
Process proc = new Process();
ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(path);
return proc;
}
<hr size="2" width="100%" />l'execution de
Process p = new Process()
p = NewExecuteFile("c:\\File1.xls")
j'ai bien dans p, le process executé, jusque là tout vas bien
Mais, lors de la seconde execution,
Process p = new Process()
p = NewExecuteFile("c:\\File2.xls")
la fonction ouvre bien le second fichier dans le process excel, mais p est egual à null, etant donné qu'il a utilisé dans le cas d'excel le même processus déjà ouvert auparavant !
je suis coincé....
j'aimerais connaitre le process dans le quel le second (ou plus) fichier à été ouvert, histoire de pouvoir mettre le processus en avant...
Amitiés
Lionel de Genève
A voir également:
Process.Start(), seconde execution ne retourne pas de process
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 2 sept. 2008 à 14:30
ce qu'il sest passé et qui fait que tu ne peux pas avoir deux fois le process :
première execution, excel se lance et ouvre le fichier
deuxieme execution, excel se lance, voit qu'il existe déjà un process excel, et demande a ce process d'ouvrir le fichier dans un nouveau tab, puis se ferme. cest donc normal que p vaille null. donc a toi de trouver un algorithme qui correspond a ton besoin en fonction de cette contrainte
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 8 sept. 2008 à 09:28
ben je te l'ai dis, le meme que le premier. Donc soit tu récupère le processus qui s'appelle excel (Process.GetProcessesByName), soit tu récupère l'instance de ton premier process
Vous n’avez pas trouvé la réponse que vous recherchez ?
Lionel de Geneve
Messages postés4Date d'inscriptionmercredi 24 août 2005StatutMembreDernière intervention 8 septembre 2008 8 sept. 2008 à 12:31
le premier...
comme tu peut le voir dans le code, c'est un shellexecute, donc process excel, word, ou tout autre logiciel....
lors de la premiere exec, je connais avec le retour le process lancé, la tout vas bien...
puis je lance un autre process qui lui vas lancer word, là je connais aussi le process lancé
j'ai donc word et excel lancé
et là lorseque que je lance un autre shellexecute, ben nada, je ne connais pas le moyen de savoir quel process a été ré-utilisé, le fichier c'est bien ouvert dans le bon process, mais comme je ne le connais pas je ne peut pas mettre la fenêtre en front!
et aussi.. si j'ai deux process excel lancé, comment savoir le quel des deux a été utilisé
Plusieurs chose pouraient mettre utile, demander à windows, quel process et lié à l'extension "*.XLS" (ou autre), là je ne sais pas faire, et la je pointe sur le premier process, tan pis si ne c'est pas le bon.
ou alors un autre moyen de mettre la fenêtre en avant...
je connais le moyen de savoir quel process et lié a un fichier, mais cela demande des droit admin, droit qui ne sont pas forcement là :-(