tag remarks generate example c# winforms handle hwnd

generate - remarks c#



¿Cómo puedo saber si un hWnd dado sigue siendo válido? (1)

Estoy usando una clase de terceros que genera una instancia de Internet Explorer. Esta clase tiene una propiedad, hWnd, que devuelve el hWnd del proceso.

Más adelante en la línea, es posible que desee reutilizar la instancia de la aplicación si aún existe, por lo que debo decirle a mi clase auxiliar que se adjunte a ella. Antes de hacer eso, me gustaría saber si el hWnd dado sigue siendo válido, de lo contrario generaré otra instancia.

¿Cómo puedo hacer esto en C # & .NET 3.5?


Si es un manejador de ventana, puede llamar a isWindow(hWnd);

Desde msdn:

Valor de retorno

BOOL

Si el identificador de la ventana identifica una ventana existente, el valor de retorno es distinto de cero.

Si el identificador de la ventana no identifica una ventana existente, el valor de retorno es cero. Observaciones

Un subproceso no debe usar IsWindow para una ventana que no creó porque la ventana podría destruirse después de llamar a esta función. Además, debido a que los controladores de ventana se reciclan, el controlador podría incluso apuntar a una ventana diferente.

Por cierto, ya que estás en .NET, tendrás que hacer algo como:

[DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] static extern bool IsWindow(IntPtr hWnd);