Accueil > > > SAVOIR SI UNE FENETRE EST AU PREMIER PLAN PERMANENT
SAVOIR SI UNE FENETRE EST AU PREMIER PLAN PERMANENT
Information sur la source
Description
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
- 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
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 ;)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|