Bonjour,
J'ai une petite application en C#/.NET qui lance d'autres applications et qui conserve une référence vers les processus.
Une fois le processus lancé (une application), je récupère l'instance Process et j'aimerais retrouver son WindowHandle pour pouvoir connaître les dimensions de la fenêtre.
voici mon code :
puis après je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Process p = new Process(); p = Process.Start(app, param);
Mais voilà, ces deux bouts de code sont appelés des dizaines de fois .. à la suite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 tagWINDOWINFO wii = new tagWINDOWINFO(); GetWindowInfo(_p.MainWindowHandle, ref wii);
Et parfois, j'ai l'impression que l'instance p (de Process) n'a pas eu le temps d'être complètement initialisée ..
Parfois le MainWindowHandle vaut zéro .. parfois pas ..
J'ai donc ajouté une boucle avant de l'utiliser ...
Mais ca ne va pas mieux ..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 do { p.Refresh(); Thread.Sleep(100); handle = (int)p.MainWindowHandle; } while (handle == 0);
Car c'est carrément l'instance 'p' qui ne vaut rien ..
J'ai ressayé avec "WaitForInputIdle" mais ca n'attend rien du tout !
Avez vous déjà eu ça ?
Partager