Process.Start(), seconde execution ne retourne pas de process

Lionel de Geneve Messages postés 4 Date d'inscription mercredi 24 août 2005 Statut Membre Dernière intervention 8 septembre 2008 - 2 sept. 2008 à 14:08
Lionel de Geneve Messages postés 4 Date d'inscription mercredi 24 août 2005 Statut Membre Derniè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);
           
            psi.CreateNoWindow = true;
            psi.UseShellExecute = true;
            psi.ErrorDialog = true;
            psi.WindowStyle = ProcessWindowStyle.Maximized;
           
            proc = System.Diagnostics.Process.Start(psi);

            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

5 réponses

leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
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
0
Lionel de Geneve Messages postés 4 Date d'inscription mercredi 24 août 2005 Statut Membre Dernière intervention 8 septembre 2008
2 sept. 2008 à 15:59
Heuh....

Je sais bien que le processus est déjà ouvert, et que donc il vas être utilisé

si je pose la question ici, c'est bien pour avoir d'autres avis, justement parse-que je n'ai pas trouvé !

Amitiés
Lionel de Genève
0
Lionel de Geneve Messages postés 4 Date d'inscription mercredi 24 août 2005 Statut Membre Dernière intervention 8 septembre 2008
4 sept. 2008 à 16:54
Vraiment personne pour savoir quel est le processus utilisé pour la seconde execution...

Amités
Lionel de Genève
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lionel de Geneve Messages postés 4 Date d'inscription mercredi 24 août 2005 Statut Membre Derniè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à :-(

Amitiés
Lionel de Genève
0
Rejoignez-nous