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