Comment puis-je empêcher le vol de focus dans Windows?

Une recherche rapide sur Google des solutions à Focus Stealing dans Windows révèle deux catégories de résultats principales:

  • Les personnes suggérant des solutions incomplètes impliquant l’entrée de registre ForegroundLockTimeout (ou TweakUI, qui modifie simplement l’entrée de registre susmentionnée), ce qui n’est pas très efficace.
  • Des hordes incessantes d’utilisateurs Windows se plaignent de cela .

Il est particulièrement agaçant dans deux scénarios courants:

Quelles solutions créatives peuvent être appliquées pour résoudre ce problème pour l’un ou l’autre de ces scénarios?

J’ai une suggestion pour la façon dont cela peut être résolu, mais je ne peux pas le mettre en œuvre complètement car je n’ai pas les connaissances.

Le changement de focus entre les fenêtres doit être initié par le programme incriminé qui appelle une fonction API Windows située probablement dans shell32 ou user32. Certains programmes, comme Adobe Photoshop, appellent plusieurs fois (au moins deux fois) pour forcer l’utilisateur à démarrer. L’idée est de connecter cette fonction API (si possible) et de vérifier d’où provient l’appel. Si ce n’est pas à partir de explorer.exe (c.-à-d. Alt + Tabulation ou en cliquant sur une icône dans la barre des tâches), l’appel doit être bloqué par ledit hook.