Process.Start(..) et MainWindowHandle
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 :
Code:
1 2 3
|
Process p = new Process();
p = Process.Start(app, param); |
puis après je fais :
Code:
1 2
| tagWINDOWINFO wii = new tagWINDOWINFO();
GetWindowInfo(_p.MainWindowHandle, ref wii); |
Mais voilà, ces deux bouts de code sont appelés des dizaines de fois .. à la suite.
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 ...
Code:
1 2 3 4 5 6 7
| do
{
p.Refresh();
Thread.Sleep(100);
handle = (int)p.MainWindowHandle;
}
while (handle == 0); |
Mais ca ne va pas mieux ..
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 ?