KEYTOSCREEN

Messages postés
38
Date d'inscription
samedi 19 avril 2003
Statut
Membre
Dernière intervention
28 avril 2004
- - Dernière réponse : Philippe734
Messages postés
309
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
15 juin 2015
- 10 sept. 2004 à 00:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/7420-keytoscreen

Philippe734
Messages postés
309
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
15 juin 2015
1 -
encore moi :-)

pour finir je dirais que voila g fait un module pour garder le focus d'une form sur une autre, un peu comme une msgbox. je n'utilise pas ma méthode cité au dessus et c mieux.

ca devrai vous interesser :-)

http://www.vbfrance.com/code.aspx?ID=26048

elle pourrai clignoter aussi
Philippe734
Messages postés
309
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
15 juin 2015
1 -
oh yes ! g trouvé ce que je cherchai, je vous en fais part :
donc vous choisissez une méthode pour garder le focus sur votre form et vous mettez ca en plus :

ds les déclarations :
'pour simuler l'action de la souris, autre que le mouvement
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10

puis là ou vous avez votre méthode de keep focus :
(ds mon cas c ce que j'ai proposé juste au dessus)

Private Sub Form_Deactivate()
Dim cButt As Long
Dim dwEI As Long
'dans cet exemple, ca lève le bouton gauche de la souris
mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, cButt, dwEI
DoEvents
Me.setfocus
End Sub

dans cette exemple ca lève le bouton gauche de la souris. donc si vous cliquez avec le bouton gauche, mettons ailleurs que sur votre form,eh bien ca l'annule, et remet la form en focus.

biensur faut blinder avec select case pour le bouton de la souris, et avec la position du click de la souris, pour ne pas annuler le clic du bouton de votre form, mais plutot annuler les clics en dehors de la form. ajoutez un beep qd le click est endehors et ca fait comme pour une message box. :-) là je suis content tout d'un coup.
Philippe734
Messages postés
309
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
15 juin 2015
1 -
ca m'interesse bcp ce keep focus

pour garder le focus y avai aussi :
Private Sub Form_Deactivate()
Me.setfocus
End Sub

MAIS , les réponses sont pas parfaites. si on clique sur une form en arriere plan, le clique sera qd meme valide. c-a-d si l'on clique sur un bouton d'une fenetre en arriere plan, y aura qd meme l'évenement du bouton qui se produira. donc comment faire pour garder le focus une fenetre et d'empecher de cliquer sur une autre, un peu comme une msgbox, sur msgbox on ne peut pas cliquer sur la fenetre qui est derriere. voyez...

je cherche ds la voie qui lache le bouton de la souris, mais je trouve pas.
comment faire ?
:-)
UnExPeCtEdSpy
Messages postés
139
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
3 juillet 2003
-
Lol merci les gars (bien que vous auriez pu me faire l'honneur de donwload la source :p) vous auriez vu qu'elle est déjà en premier plan forcée :)

Effectivement j'avais oublié la propriété Setfocus, qui correspond exactement a ce que je chercher :)

Merci a+
cs_Krach
Messages postés
18
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
13 septembre 2003
-
En effet, mais ça ne bouffe pas trop le CPU le fait que le Timer soit toujours en fonctionnement?