J'essaie d'apporter au premier plan de la fenêtre. J'utilise ce code. Mais ça ne fonctionne pas. Est-ce que quelqu'un pourrait vous aider? Code expliqué P> Faire une fenêtre la fenêtre de premier plan
nécessite plus que d'appeler le
Setforegroundwindow API. Vous devez
Déterminez d'abord le fil de premier plan
et attachez-le à votre fenêtre en utilisant
Attachthreadinput, puis appelez
Setforegroundwindow. Cette façon, ils peuvent
Partagez des états d'entrée. P>
D'abord, j'appelle GetForegroundwindow à
Obtenez la poignée du courant
fenêtre de premier plan. Puis quelques appels à
GetWindowThreadProcessid récupère le
Fils associés au courant
fenêtre de premier plan et la fenêtre I
vouloir apporter au premier plan. Si
Ces fils sont les mêmes un simple
appel à setforegroundwindow est tout
c'est nécessaire. Sinon, le
Le fil de premier plan est attaché à la
fenêtre que je porte à l'avant
et détaché de quel était le courant
fenêtre de premier plan. le
API API PHASSTHEADADINCT Ceci. P>
BlockQuote> Contenu extrait de ici
Merci. P> p>
6 Réponses :
Vous devez utiliser SetForegroundwindow. De plus, il peut être intéressant pour vous C # FORME FORMULAIRE FOCUS P>
Je serai bref: form.bringtoFront () strong> p>
Ceci est pour les formulaires dans votre propre application, pas d'application en cours d'exécution
J'ai utilisé cette méthode avant: Plus d'informations: http: / /pinvoke.net/default.aspx/user32.setforegroundwindow P> P>
Vous devez également apporter le formulaire de restauration si elle est minimisée.
Si vous ne connaissez pas votre nom de processus, c'est une façon pratique de les obtenir: système.diagnostics.process.getprocesses ()
AS de Windows 7 Ces fonctionnalités ne se comportent pas si bien. S'il y a une application telle que Excel devant l'application, vous souhaitez apporter à l'avant, alors Windows 7 bloque cela et clignote la fenêtre. Vous pouvez définir un délai d'attente de registre ForgrockLockTimeout = 0 dans HKEY_CURRENT_USER \ Panneau de configuration \ Desktop Mais ceux-ci sont connus sous le nom de mise au point. Pour définir le comportement de la manière dont XP "devrait" se comporter et se comportera dans Windows 7 par défaut, vous pouvez créer / définir la valeur sur 0x00030D40 (200000ms). J'aimerais savoir quelle est la solution préférée pour les applications Windows de confiance. par exemple. Si je fais confiance à l'application B pour prendre la mise au point lorsque je double-cliquez sur quelque chose dans application A, et une autre application obscurcissait la fenêtre d'application b. P>
Ce code restaure et définit la mise au point sur une fenêtre: et l'utiliser comme ceci: p>
Pour que SetForegroundwindow fonctionne de manière cohérente, vous devez répondre à quelques critères a>. Le premier est votre processus qui dirigerait la commande doit être au premier plan. Seul le processus de premier plan peut rendre un autre processus de premier plan. Afin de faire au premier plan de votre processus d'abord, vous devez apporter la fenêtre principale à l'avant, si ce n'est pas le cas. Vous le minimisez d'abord, puis définiForegroundwindow pour le faire de premier plan. Maintenant, trouvez le processus cible et apportez-le à l'avant p>
Les étapes sont p>
J'ai un exemple , bien que ce soit un cas d'utilisation légèrement différent. P>
Mettez des exemples en ligne, sinon vous finissez par liaison à des réponses qui disparaissent finalement.
Vous pouvez atteindre l'exemple d'ici, simplelifeeuk .WordPress.com / 2014/12/12 / ...
Je ne peux pas comprendre le code aussi. Mais je pense que le sujet serait fermé. J'attends des solutions possibles
@Nikil, mayb Il suffit de conserver le titre et de supprimer (oubliez) ce code?
@Nikil - Vous devez utiliser un notificon à la place
Ce code est vraiment diabolique, et potentiellement buggy également: blogs.msdn.com/b/oldnewthing/archive/2008/08/01/8795860.aspx
Duplicaté possible de Quoi est le moyen "droit" d'apporter une application de formulaires Windows au premier plan?
Pas un duplicata. Cela apporte une application séparée au premier plan.