Ceci est similaire à alternate SO question, je suppose que vous voulez simplement suivre la fenêtre active et sur le changement que vous sauriez alors l'actif précédemment
Modifier, ce code est essentiellement copié de la question que je liée qui était à la recherche pour la fenêtre active actuelle mais avec la logique pour persister le lastHandle et identifier quand vous avez un nouveau lastHandle. Ce n'est pas prouvé, la mise en œuvre 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;
}
}
Ce n'est pas la question en double. Je dois obtenir le handle de la dernière fenêtre active pas la fenêtre courante. –
@Vinay, j'ai dit similaire. Cette question donne les connaissances nécessaires pour utiliser les API Win32. J'ai donc supposé que le handle renvoyé par GetForegroundWindow() était approprié pour votre utilisation. Ce n'est pas un doublon mais certainement similaire ou une sous-question dans un plus grand demandé. Si vous cherchez une implémentation pour copier et coller désolé, mais je vous ai donné la logique dans ma réponse ... suivre toutes les fenêtres ACTIVE, une fois que vous avez trouvé une seconde fenêtre ACTIVE, vous avez maintenant la connaissance de la précédente. Je vais éditer avec du code Psuedo. –
Merci Jamie Altizer. –