gourmand86
Messages postés33Date d'inscriptionmercredi 6 octobre 2010StatutMembreDernière intervention 9 janvier 2012
-
3 janv. 2012 à 14:48
gourmand86
Messages postés33Date d'inscriptionmercredi 6 octobre 2010StatutMembreDernière intervention 9 janvier 2012
-
9 janv. 2012 à 15:22
Bonjour tout le monde est bonne année.
Je reviens avec un gros problème
Actuellement je détecte les touche appuyer comme sa :
Sub macro
' code ...
Dim duree As Single
duree = 0.01
while (continuer=1)
Pause duree
If GetAsyncKeyState(&H25) 1 Then directionJ1 1
If GetAsyncKeyState(&H27) 1 Then directionJ1 2
If GetAsyncKeyState(&H51) 1 Then directionJ2 1
If GetAsyncKeyState(&H44) 1 Then directionJ2 2
' code ...
wend
End sub
Sub Pause(duree As Single)
Dim T As Single
T = Timer
Do While Timer < T + duree
DoEvents
Loop
End Sub
Le problème est que catia a une zone appelé entrée clavier est lors ce que j’appuis sur une touche, sa l’active.
J’aimerais savoir si il y a d’autre moyen pour détecter la touche appuyer ou si on peut se passer du DoEvents (se qui me semble impossible) ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018219 3 janv. 2012 à 16:03
Bonjour,
Comment veux-tu que l'on devine ce dont tu as besoin avec d'une part le code montré et d'autre part ce que tu exposes ?
Seule ma boule de cristal me souffle (mais comment être certain de ce qu'elle ne se trompe pas ?) que tu cherches à dire quelque chose du genre :
"je ne veux pas que des instructions (celles de ton code) s'exécutent lorsque je suis dans une zone de saisie au clavier"
Est-ce cela ?
Si oui :
-utilisation d'une variable générale booléenne à mettre à True lorsque tu quittes cette zone et à False lorsque tu y entres. Puis exécution de tes instructions uniquement (expression conditionnelle) si cette booléenne est False.
Le DoEvents n'est ici pas concerné.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
gourmand86
Messages postés33Date d'inscriptionmercredi 6 octobre 2010StatutMembreDernière intervention 9 janvier 2012 3 janv. 2012 à 16:48
Se que je cherche, c'est qu'autre fonction qui permette de détecter l’appui du touche autre que :
GetAsyncKeyState(&H25)=1
La zone appelé entrée clavier est un moteur de recherche de Catia, et ne possède aucune fonction pour le désactiver, voir le contenue ...
Le problème est que quant j’appuis sur une touche, sa m’active se moteur de recherche, ma macro continu de tourné mais c est le moteur de recherche qui a la priorité sur les touches appuyer (pour ma macro, les touches ne sont jamais appuyer).
Le DoEvents est concerné car j’appel la fonction pause qui appel DoEvents
Ou alors je me plante complètement et DoEvents doit être dans la même fonction que :
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018219 3 janv. 2012 à 20:44
Désolé, mais je ne comprends rien de ce que tu tentes d'exposer.
(trop vieux, sûrement, pour te "suivre")
Bonne chance.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
gourmand86
Messages postés33Date d'inscriptionmercredi 6 octobre 2010StatutMembreDernière intervention 9 janvier 2012 9 janv. 2012 à 09:28
Peut etre Application.OnKey "{Enter}", "MaProc"
Si je me rappel bien, cette fonction défini que l'or ce que l'on appui sur entré, sa lance MaProc ?
Pour mon problème :
Vous voyer le petit cadre blanc en bas à droite ? C’est un moteur de recherche, et à chaque fois que l’on appuis dessus, il s’active pour écrire même quand ma macro est lancé
C’est comme si dans un MMO, l’or ce que l’on appui sur "Z" pour avancer sa active la zone de chat et écrie "z"
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018219 9 janv. 2012 à 10:51
Bonjour,
Il faudrait avoir CATIA pour te répondre valablement.
Si CATIA te permet de savoir si tu es dans cette zone de saisie (je n'en sais rien sans CATIA), il te suffit d'une expression conditionnelle (si dans alors, sinon ...)
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
gourmand86
Messages postés33Date d'inscriptionmercredi 6 octobre 2010StatutMembreDernière intervention 9 janvier 2012 9 janv. 2012 à 14:19
si tu es dans cette zone de saisie
Non justement, catia se moque si on est dedans ou pas. Pour lui, tu appuis sur une touche, il te mais dedans.
C’est comme si couter (ou je ne sais qu'elle jeu auquel tu joue) te mais sur le chat à chaque fois que tu clic sur une lettre.
Es ce que c’est possible de dire que ma touche n’est plus une touche mais une variable ? Quand j’appui dessus elle passe a 1 si non elle passe a 0. En gros la touche "a" ne sera plus "a" mais "variable_haut".
et apré je récupère cette variable dans ma macro :
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018219 9 janv. 2012 à 14:26
Désolé. Faudrait avoir CATIA sous la main (et je ne l'ai pas).
Bonne chance.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient