StiriX
Messages postés67Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention 2 septembre 2009
-
26 août 2006 à 20:10
StiriX
Messages postés67Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention 2 septembre 2009
-
26 août 2006 à 22:13
Bonjour,
je voudrais mettre la valeur de mon tableau dans la fonction getasynckeystate comme suis :
dim tableau
tableau=array("un","deux")
for i=0 to 1 step 1
if (getasynckeystate(tableau(i)) and &H1) = &H1 Then
Msgbox("vous avez cliquez sur le bouton gauche de votre souris")
end if
next
avec en module ceci :
Declare function getasynckeystate lib "user32.dll" (byval vkey as long) as Integer
public const un= &H1
Une erreur vient à getasynckeystate(tableau(i)), il ne reconnait pas la valeur du tableur.
StiriX
Messages postés67Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention 2 septembre 2009 26 août 2006 à 20:35
désolé j'ai pas compris ce que tu as voulu dire, en fait je veux pas que tableau(i) soit interprété par la fonction comme étant tableau(i) mais comme étant le mot "un".
Merci.
PCPT
Messages postés13278Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201848 26 août 2006 à 21:29
çà j'ai bien compris, c'est l'intention du code que je ne vois pas.
utiliser le mot "un", quel rapport?
déclarer une variable un en long à 1&, ok mais pourquoi?
faire un And avec une string et un long, quoi?!!
utiliser cette API pour la souris, hein??!!
The GetAsyncKeyState function determines whether a key is up or down at the time the function is called, and whether the key was pressed after a previous call to GetAsyncKeyState.
++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 26 août 2006 à 21:31
Il ne faut pas utiliser l'API GetAsyncKeyState mais GetKeyState :
<small>
Coloration syntaxique automatique </small>
' API pour test si une touche est enfoncée
Private Declare Function GetKeyState Lib "user32" ByVal nVirtKey As Long) As Integer
' *** Place un Timer dans une Form pour tester :
Private Sub Timer1_Timer()
If GetKeyState(VK_LBUTTON) >= 0 Then
Me.Caption = "Bouton gauche de la souris relaché"
Else
Me.Caption = "Bouton gauche de la souris enfoncé"
End If
End Sub
<small>
Coloration syntaxique automatique </small>
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 26 août 2006 à 21:35
C'est clair ^^
l'autre (reprends moi PCPT si je me trompe) est pour garder une touche 'virtuellement' enfoncée.
La valeur vkey de getasynckeystate prend la valeur d'une touche, et simule un appuie tant que tu ne lui dis pas d'arrêter la simulation.
Par ex : tu lance la fonction pour la Touche Maj, bah à chaque fois que tu écriras qque chose, ce sera en Majuscule. (même après fermeture du prog, il me semble)
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
StiriX
Messages postés67Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention 2 septembre 2009 26 août 2006 à 21:49
Effectivement Mortalino ton code fonctionne bien et il est moins lourd que l'autre. Mais je vais me retrouvé au même probleme. Si je stock le nom de toutes mes constantes dans un array (par exemple: tabl = array("lettrea","lettreb","lettrec"), il ne va pas les interpréter; il va prendre tabl(i) et nom pas "lettrea", "lettreb" ou "lettrec".
for i=0 to 2 step 1
If GetKeyState( tabl(i) ) = 1 Then
'code en fonction de la touche saisie
End If
et hmmm tu trouve ou les autres valeurs des touches ?