Я использую сторонний класс, который порождает экземпляр Internet Explorer. Этот класс имеет свойство, hWnd, который возвращает hWnd процесса.
Позже по линии я могу хотеть снова использовать экземпляр приложения, если это все еще существует, таким образом, я должен сказать моему классу помощника присоединять к нему. До выполнения этого я хотел бы знать, допустим ли данный hWnd все еще, иначе я буду порождать другой экземпляр.
Как я могу сделать это в C# и.NET 3.5?
Если это дескриптор окна, вы можете вызвать isWindow (hWnd);
Из msdn:
Возвращаемое значение
BOOL
Если дескриптор окна идентифицирует в существующем окне возвращаемое значение ненулевое.
Если дескриптор окна не идентифицирует существующее окно, возвращаемое значение равно нулю. Замечания
Поток не должен использовать IsWindow для окна , которое он не создавал, потому что окно могло быть уничтожено после того, как была вызвана эта функция. Кроме того, поскольку дескрипторы окон повторно используются дескриптор может даже указывать на другое окно.
Кстати, поскольку вы находитесь в .NET, вам нужно будет сделать что-то вроде:
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool IsWindow(IntPtr hWnd);