214 votes

Empêcher les applications de voler la vedette

Existe-t-il des solutions pour empêcher les applications de voler le focus de la fenêtre active ?

C'est particulièrement gênant lorsque je lance une application, que je passe à autre chose et que la nouvelle application commence à recevoir la moitié d'une phrase de texte.

3voto

cmeerw Points 266

Ghacks a un solution possible :

Cela arrive plusieurs fois par jour que certaines applications volent le focus de la la fenêtre active en surgissant. Ce peut se produire pour un certain nombre de raisons, lorsque j'extrais des fichiers ou qu'un transfert ou qu'un transfert se termine, par exemple. La plupart du temps la plupart du temps, cela n'a pas d'importance mais parfois, je suis en train d'écrire un article et cela ne signifie pas seulement que que je dois retaper certains mots, mais mais aussi que j'ai perdu ma concentration et et que je dois cliquer pour me concentrer à nouveau.

El Réviseur professionnel a un conseil sur comment éviter que cela ne se produise. Le moyen le plus simple d'empêcher le vol de focus est d'utiliser Tweak UI qui dispose d'une un paramètre appelé "Prevent empêcher les applications de voler le focus". En cochant cette option, vous évitez que d'autres applications surgissent soudainement et et volent le focus de la fenêtre dans laquelle vous fenêtre dans laquelle vous travaillez actuellement.

Cela ne fonctionne que lorsque l'application a été minimisée auparavant. Au lieu de la mise au point, il clignotera un nombre de fois qui peut être défini dans le même menu dans Modifier l'interface utilisateur . Si vous ne souhaitez pas utiliser Tweak UI, vous pouvez modifier le paramètre dans le registre de Windows.

Accédez à la clé de registre HKEY_CURRENT_USER > Panneau de configuration > > Bureau. Bureau et modifiez la valeur ForegroundLockTimeout à 30d40 (hexadécimal) ou 200000 (décimal). L'adresse touche ForeGroundFlashCount définit le nombre de clignotements d'une fenêtre pour alerter l'utilisateur, 0 signifiant illimité.

1voto

Glenn Slayden Points 1165

J'ai trouvé comment empêcher la barre des tâches de faire clignoter une fenêtre cible nouvellement activée après avoir activé, agrandi et mis au point la fenêtre principale de ce processus à partir d'un autre processus. Tout d'abord, il existe de nombreuses restrictions quant à l'autorisation de cette opération.

"Le système limite les processus qui peuvent définir la fenêtre de premier plan. Un processus peut définir la fenêtre de premier plan uniquement si l'une des conditions suivantes est vraie :

  • Le processus est le processus de premier plan.
  • Le processus a été lancé par le processus d'avant-plan.
  • Le processus a reçu le dernier événement d'entrée.
  • Il n'y a pas de processus de premier plan.
  • Le processus de premier plan est en cours de débogage.
  • Le premier plan n'est pas verrouillé (voir LockSetForegroundWindow).
  • Le délai de verrouillage du premier plan a expiré (voir SPI_GETFOREGROUNDLOCKTIMEOUT dans SystemParametersInfo).
  • Aucun menu n'est actif.

<a href="https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-allowsetforegroundwindow" rel="nofollow noreferrer">https://docs.microsoft.com/en-us/Windows/desktop/api/winuser/nf-winuser-allowsetforegroundwindow</a>

Ainsi, si le contrôler est au premier plan, il peut temporairement activer un autre processus pour voler entièrement l'avant-plan en appelant AllowSetForegroundWindow avec le identifiant du processus du processus cible. Puis, après cela, le processus cible peut appeler SetForegroundWindow lui-même, en utilisant sa propre poignée de fenêtre, et cela fonctionnera.

Évidemment, cela nécessite une certaine coordination entre les deux processus, mais cela fonctionne, et si vous faites cela afin de mettre en œuvre une application mono-institutionnelle qui redirige tous les lancements de clics d'Explorer vers l'instance d'application existante, alors vous aurez déjà un tuyau (par exemple) nommé pour coordonner les choses de toute façon.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X