Salut la compagnie
J'ai fait cette routine pour savoir si une fenetre est au premier plan permanent car aucune API à ce que je sais ne peux le dire directement.
Le principe : si une fenetre à tester se laisse recouvrir par une autre fenetre qui est elle standard, alors la fenetre à tester n'est pas au premier plan permanent
Il vous faut une form, contenant le code ci dessous, un bouton et un textbox dans la meme form, et une form supplémentaire (form2) contenant aucun code
Source / Exemple :
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Function TopAsk(hwnd As Long) As Boolean
Dim Rec As RECT 'declaration de la variable accueuillant les infos de la position de la fenetre désirée
GetWindowRect hwnd, Rec 'enregistrement des infos
Form2.Show 'affichage de form2
Form2.Left = Rec.Left * Screen.TwipsPerPixelX 'à la meme X que la fenetre a tester (les donnée en VB étant par defaut en twips, on multiplie pour avoir les mesures en pixels pour l'écran
Form2.Top = Rec.Top * Screen.TwipsPerPixelY 'à la meme Y que la fenetre à tester (les donnée en VB étant par defaut en twips, on multiplie pour avoir les mesures en pixels pour l'écran
If WindowFromPoint(Rec.Left, Rec.Top) = Form2.hwnd Then 'si la fenetre au premier plan et au points X et Y de la fenetre a tester est la meme que celle que l'on a affiché, alors la fenetre a tester n'est pas en premier plan permanent car elle s'est laissée recouvrir
TopAsk = False
Else: TopAsk = True
End If
Unload Form2
End Function
Private Sub Command1_Click()
MsgBox TopAsk(Text1.Text)
End Sub
Conclusion :
N"hésitez pas pour les commentaires et Joyeuses Paques ;)
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.