Verifier si l'application est au premier plan [Résolu]

cs_ov3rdoze 414 Messages postés lundi 19 juillet 2004Date d'inscription 23 septembre 2014 Dernière intervention - 23 sept. 2008 à 09:04 - Dernière réponse : cs_ov3rdoze 414 Messages postés lundi 19 juillet 2004Date d'inscription 23 septembre 2014 Dernière intervention
- 23 sept. 2008 à 11:31
Bonjour

Avant tout désolé mais je ne sais pas quel est le terme exact pour ce que je cherche (d'où la difficulté pour chercher...).

Je souhaite faire déclencher une action à intervalles réguliers, mais uniquement si l'application n'est pas au premier plan. Je m'explique : si elle est minimisée, on déclenche. Sinon, on ne déclenche que si , par exemple, on à choisi une autre application dans la barre des tâches qui s'est donc ouverte par dessus.

Dans le Timer_Tick, j'ai essayé :

If

(
Not
Me.Enabled)
et

If

(Not

Form.ActiveForm.Equals(
Me))
Mais aucun des 2 ne fonctionne...
Quelqu'un aurait une idée?

Merci d'avance
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 23 sept. 2008 à 11:24
3
Merci
api   GetWindowInfo


<System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)> _


Public Structure HWND__





'''int


Public unused As Integer


End Structure


<System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)> _


Public Structure tagWINDOWINFO





'''DWORD->unsigned int


Public cbSize As UInteger





'''RECT->tagRECT


Public rcWindow As tagRECT





'''RECT->tagRECT


Public rcClient As tagRECT





'''DWORD->unsigned int


Public dwStyle As UInteger





'''DWORD->unsigned int


Public dwExStyle As UInteger





'''DWORD->unsigned int


Public dwWindowStatus As UInteger





'''UINT->unsigned int


Public cxWindowBorders As UInteger





'''UINT->unsigned int


Public cyWindowBorders As UInteger





'''ATOM->WORD->unsigned short


Public atomWindowType As UShort





'''WORD->unsigned short


Public wCreatorVersion As UShort


End Structure


<System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)> _


Public Structure tagRECT





'''LONG->int


Public left As Integer





'''LONG->int


Public top As Integer





'''LONG->int


Public right As Integer





'''LONG->int


Public bottom As Integer


End Structure


Partial Public Class NativeMethods





'''Return Type: BOOL->int


'''hwnd: HWND->HWND__*


'''pwi: PWINDOWINFO->tagWINDOWINFO*


<System.Runtime.InteropServices.DllImportAttribute("user32.dll", EntryPoint:="GetWindowInfo")> _


Public Shared Function GetWindowInfo(<System.Runtime.InteropServices.InAttribute()> ByVal hwnd As System.IntPtr, ByRef pwi As tagWINDOWINFO) As <System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)> Boolean


End Function


End Class









Bonjour chez vous !

Merci gillardg 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de gillardg
68manu 43 Messages postés samedi 20 septembre 2008Date d'inscription 1 octobre 2008 Dernière intervention - 23 sept. 2008 à 09:49
0
Merci
Salut


et pourquoi pas utiliser la propriete WindowsState des forms...


3 choix : Maximized, Normal et Minimized ...


Ca devrait le faire :-)


Bon coding

_____________________
No problems, only soluces
Commenter la réponse de 68manu
cs_ov3rdoze 414 Messages postés lundi 19 juillet 2004Date d'inscription 23 septembre 2014 Dernière intervention - 23 sept. 2008 à 09:55
0
Merci
Ben en fait j'ai essayé mais ça ne convient que pour certains cas :
 - Si la fenêtre est réduite, Minimized convient
 - Si elle ne l'est pas, son WindowsState vaut Normal (ou Maximized selon l'état) que la fenêtre soit au premier plan ou qu'elle soit "recouverte" par une autre.

Mais merci quand même.
Commenter la réponse de cs_ov3rdoze
cs_ov3rdoze 414 Messages postés lundi 19 juillet 2004Date d'inscription 23 septembre 2014 Dernière intervention - 23 sept. 2008 à 11:31
0
Merci
Merci pour cette réponse pour le moins complète
Je vais essayer (sans conviction) de comprendre ce que ça fait...
Commenter la réponse de cs_ov3rdoze

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.