C# получить дескриптор окна после запуска процесса
Есть ли способ получить дескриптор окна (IntPtr) для окна после его запуска из приложения C# с Process.Start()?
4 ответа
Если вы ищете главное окно, Process.MainWindowHandle
даст вам то, что вам нужно.
Использование
process.MainWindowHandle;
Вероятно, при запуске приложения оно равно 0, поэтому вы можете захотеть зацикливаться и спать, пока оно не заполнится.
Это не недавняя тема, но ответы на нее неполные.
Я согласен с решением Process.MainWindowHandle и ждать значения, но не с Sleep.
Если вы только что запустили процесс и хотите использовать его дескриптор главного окна, рассмотрите возможность использования метода WaitForInputIdle, чтобы процесс мог завершиться, гарантируя, что дескриптор главного окна был создан.
Эта перегрузка применяется только к процессам с пользовательским интерфейсом и, следовательно, с циклом сообщений.
Вы также можете вызвать Refresh() в процессе, чтобы убедиться, что информация в точности