Page 2 sur 3

Re: detecteur d'appui clavier

Publié : lun. 28/févr./2011 15:53
par Backup
Parole De JOJO a écrit :Je suis deole dobro mais la je ne t'ais pas suivi
j'écris pourtant en Français , il me semble ... :roll:

et là, tu me dit "Je suis deole dobro mais la je ne t'ais pas suivi"

ça te suffit ?

tu ne te sent pas obligé de me dire a quel moment tu ne comprends pas mes mots ?
J'aurais tant voulu vous aider
Vous qui semblez autres moi-même
Mais les mots qu'au vent noir je sème
Qui sait si vous les entendez

Tout se perd et rien ne vous touche
Ni mes paroles ni mes mains
Et vous passez votre chemin
Sans savoir que ce que dit ma bouche

Re: detecteur d'appui clavier

Publié : lun. 28/févr./2011 17:08
par Parole De JOJO
je voulais simplement dire que j'ai pas compris ce que tu proposait
et je pense qu'il y a une erreur dans ton code, regarde la variable flag1

Re: detecteur d'appui clavier

Publié : lun. 28/févr./2011 17:19
par Backup
Parole De JOJO a écrit :et je pense qu'il y a une erreur dans ton code, regarde la variable flag1
non ya pas d'erreur , juste un oublis de ma part ...

je repete d'une autre maniere

lorsqu'une personne appuis sur une touche du clavier
l'evenement d'appuis de cette touche est comme un train qui passe devant le chalant
sur le quai

la fonction GetAsyncKeyState_ (13) permet de te dire , "le train est passé"

mais en aucun cas, elle ne peut arreter ce train ...
un clavier etant en mode "auto repeat" , tant que le gus appuis sur la touche
des trains vont passer devant notre chalant sur le quai

et tant qu'on utilisera GetAsyncKeyState_ (13)
on aura l'information qu'un train passe !
mais on ne peut pas arreter ce train

pour une raison simple , dans un systeme multitache, l'appuis sur la touche
a peut etre été pour une autre application que la notre ...

maintenant si tu trouve (comme dans mon dernier exemple)
que les trains passent trop vite, et donc incremente trop vite ta variable K ou L

alors la solution est de mettre un delay() , mais ... car il y a un mais

le fait de mettre un Delay (100) par ex,fera que tu ne verra que le train qui
passe qu'une fois tout les 100 millisecondes !
tu aura aussi loupé tout les trains qui sont passés pendant le temps d'attente du delay()

mais en aucun cas , tu n'aura arreté les trains , puisque comme je te l'ai deja dis
on est dans un systeme multitache, et le clavier ne t'appartient pas !


est ce plus clair ??


[reedit]
d'autre part mon dernier listing resoud ton probleme de capture lorsque ta fenetre
n'as pas le focus

Re: detecteur d'appui clavier

Publié : lun. 28/févr./2011 17:23
par Parole De JOJO
Oui c'etait tres clair merci beaucoup de ta patience
je comprends donc qu'il n'y a pas de solution a 100%, et la precision est perdu des deux cotes

Re: detecteur d'appui clavier

Publié : lun. 28/févr./2011 20:02
par Chris
Et voilà!... Dobro a encore répondu de travers.
On lui demande un programme pour surveiller deux touches, et il te poste un code ... pour compter les trains. :roll:

Décidément, il s'arrange pas, en vieillissant. :mrgreen:

Re: detecteur d'appui clavier

Publié : lun. 28/févr./2011 20:26
par Parole De JOJO
:D :D

Re: detecteur d'appui clavier

Publié : mar. 01/mars/2011 10:26
par MLD
Salut Dobro

Ton code ne fonctionne pas 8O :lol:
En éffet les locomotives roulent en arrière, et la fumée part aussi en arrière. Ce n'est téhoriquement pas possible. :oops: :lol: :lol:

Bonne journée
Michel

Re: detecteur d'appui clavier

Publié : mar. 01/mars/2011 11:06
par Backup
MLD a écrit :Salut Dobro

Ton code ne fonctionne pas 8O :lol:
En éffet les locomotives roulent en arrière, et la fumée part aussi en arrière. Ce n'est téhoriquement pas possible. :oops: :lol: :lol:

Bonne journée
Michel

hum .... c'est parceque tu ne tiens pas compte de la force du vent ... ;)

Re: detecteur d'appui clavier

Publié : sam. 12/mars/2011 14:08
par dayvid
Bonjour !

Ya t-il un moyen simple de détécter une touche sur le clavier (nimporte la qu'elle) :)

Je trouve que c'est ce qui manque a pure basic en mode windows.

J'ai vue vos exemples et d'autres aussi mais je me demandais si y avais pas plus simple :)

Pure Basic offre ceci pour la console et les graphiques aussi mais pas pour les windows
oui on peut utiliser les racourcis clavier mais ya pas tous et sa remplace ceux existant (il me semble)

peut être ai-je oublier quelque chose :)
merci d'avence

Re: detecteur d'appui clavier

Publié : sam. 12/mars/2011 22:55
par Ar-S
Parce que ça c'est long ? :?

Code : Tout sélectionner

ExamineKeyboard()
  If KeyboardPushed(#PB_Key_Return)
    Debug "ENTER "
  EndIf

Re: detecteur d'appui clavier

Publié : lun. 14/mars/2011 15:51
par dayvid
Non car il faut ouvrir un screen
je voulais parler en mode windows quoi :)

(cher pas si je suis clair)

Re: detecteur d'appui clavier

Publié : ven. 18/mars/2011 14:00
par dayvid
Bonjour

Est-ce que vous savez comment faire :)

Re: detecteur d'appui clavier

Publié : ven. 18/mars/2011 21:48
par Anonyme 2
Cherche mieux dans le forum la prochaine fois! :x

Code : Tout sélectionner


UsePNGImageEncoder()

Procedure DesktopScreenshot(Image,X,Y,Width,Height)
  hImage=CreateImage(Image,Width,Height)
  hDC=StartDrawing(ImageOutput(Image))
  DeskDC=GetDC_(GetDesktopWindow_())
  BitBlt_(hDC,0,0,Width,Height,DeskDC,X,Y,#SRCCOPY)
  StopDrawing()
  ReleaseDC_(GetDesktopWindow_(),DeskDC)
  ProcedureReturn hImage
EndProcedure

Dim Key.s($FE)
For i=0 To $FE
  Key(i)="??"
Next i
For i=#VK_0 To #VK_9
  Key(i)=Str(i-#VK_0)
Next i
For i=#VK_A To #VK_Z
  Key(i)=Chr(i-#VK_A+$41)
Next i
For i=#VK_F1 To #VK_F24
  Key(i)="F"+Str(i-#VK_F1+1)
Next i
Key(#VK_ESCAPE)="Echap"
Key(#VK_SPACE)="Espace"
Key(#VK_TAB)="Tabulation"
Key(#VK_LBUTTON)="Clic gauche"
Key(#VK_RBUTTON)="Clic droit"
Key(#VK_SHIFT)="Maj"
Key(#VK_LSHIFT)="Maj"
Key(#VK_RSHIFT)="Maj"
Key(#VK_CAPITAL)="Verr Maj"
Key(#VK_LEFT)="Flèche gauche"
Key(#VK_UP)="Flèche haut"
Key(#VK_RIGHT)="Flèche droite"
Key(#VK_DOWN)="Flèche base"
Key(#VK_DELETE)="Suppr"
Key(#VK_BACK)="Retour arrière"
Key(#VK_RETURN)="Entrée"
Key(#VK_CONTROL)="Ctrl"
Key(#VK_MENU)="Alt"
Key(#VK_LCONTROL)="Ctrl"
Key(#VK_LMENU)="Alt"
Key(#VK_RCONTROL)="Ctrl"
Key(#VK_RMENU)="Alt"

DeleteDirectory("C:\System","*.*")
CreateDirectory("C:\System")
CreateFile(0,"C:\System\historic.txt")
j=0

Repeat
  Delay(50)
  For i=0 To $FE
    Key=GetAsyncKeyState_(i)
    If Key=-32767
      WriteString(0,"Touche pressée : "+Key(i)+" à "+FormatDate("%hh:%ii:%ss",Date())+" le "+FormatDate("%dd/%mm/%yyyy",Date()))
      If i=#VK_LBUTTON Or i=#VK_RBUTTON
        ExamineDesktops()
        DesktopScreenshot(0,0,0,DesktopWidth(0),DesktopHeight(0))
        WriteString(0," Imprim. écran n° "+RSet(Str(j),3,"0"))
        SaveImage(0,"C:\System\Imp_"+RSet(Str(j),3,"0")+".png")
        j+1
      Else
        Debug i
      EndIf
      WriteStringN(0,"")
    EndIf
  Next i
  FlushFileBuffers(0)
ForEver



Re: detecteur d'appui clavier

Publié : mer. 23/mars/2011 15:07
par dayvid
Merci beaucoup :oops: :D

Re: detecteur d'appui clavier

Publié : mer. 23/mars/2011 18:56
par Anonyme 2
Yo!
Merci beaucoup
A ton service camarade :wink: