Esto es similar a alternate SO question, yo asumiría que acaba de realizar un seguimiento de la ventana activa y sobre el cambio A continuación, conocer la activa anteriormente
Editar, esto es básicamente el código copiado de la pregunta que enlazadas que estaba buscando para la ventana activa actual pero con la lógica para persistir el lastHandle e identificar cuándo tienes un nuevo lastHandle. No es una implementación comprobable y compilable:
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
static IntPtr lastHandle = IntPtr.Zero;
//This will be called by your logic on when to check, I'm assuming you are using a Timer or similar technique.
IntPtr GetLastActive()
{
IntPtr curHandle = GetForeGroundWindow();
IntPtr retHandle = IntPtr.Zero;
if(curHandle != lastHandle)
{
//Keep previous for our check
retHandle = lastHandle;
//Always set last
lastHandle = curHandle;
if(retHandle != IntPtr.Zero)
return retHandle;
}
}
Esta no es la pregunta duplicada. Necesito obtener el mango de la última ventana activa, no la ventana actual. –
@Vinay, dije similar. Esa pregunta proporciona el conocimiento sobre cómo usar las API de Win32, así que asumí que el identificador devuelto por GetForegroundWindow() era apropiado para su uso. Esto no es un duplicado, pero definitivamente es similar o una pregunta secundaria dentro de otra más grande. Si está buscando una implementación para copiar y pegar lo siento, pero le di lógica en mi respuesta ... seguimiento de todas las ventanas activas, una vez que haya encontrado una segunda ventana ACTIVE, ahora tiene conocimiento de la anterior. Voy a editar con un poco de código psuedo. –
Gracias Jamie Altizer. –