Как я могу сказать, допустим ли данный hWnd все еще?

Я использую сторонний класс, который порождает экземпляр Internet Explorer. Этот класс имеет свойство, hWnd, который возвращает hWnd процесса.

Позже по линии я могу хотеть снова использовать экземпляр приложения, если это все еще существует, таким образом, я должен сказать моему классу помощника присоединять к нему. До выполнения этого я хотел бы знать, допустим ли данный hWnd все еще, иначе я буду порождать другой экземпляр.

Как я могу сделать это в C# и.NET 3.5?

21
задан Breeze 11 March 2016 в 12:25
поделиться

1 ответ

Если это дескриптор окна, вы можете вызвать isWindow (hWnd);

Из msdn:

Возвращаемое значение

BOOL

Если дескриптор окна идентифицирует в существующем окне возвращаемое значение ненулевое.

Если дескриптор окна не идентифицирует существующее окно, возвращаемое значение равно нулю. Замечания

Поток не должен использовать IsWindow для окна , которое он не создавал, потому что окно могло быть уничтожено после того, как была вызвана эта функция. Кроме того, поскольку дескрипторы окон повторно используются дескриптор может даже указывать на другое окно.

Кстати, поскольку вы находитесь в .NET, вам нужно будет сделать что-то вроде:

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool IsWindow(IntPtr hWnd);
33
ответ дан 29 November 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: