FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» trop de fichiers en cours
Un clavier cliquable Emptypar Marc Aujourd'hui à 11:42

» Bataille navale SM
Un clavier cliquable Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
Un clavier cliquable Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
Un clavier cliquable Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Un clavier cliquable Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Un clavier cliquable Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Un clavier cliquable Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Un clavier cliquable Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Un clavier cliquable Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Un clavier cliquable Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
Un clavier cliquable Emptypar leclode Dim 21 Avr 2024 - 18:09

» 2D_fill_color(résolu)
Un clavier cliquable Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Un clavier cliquable Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Un clavier cliquable Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Un clavier cliquable Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
-28%
Le deal à ne pas rater :
Brandt LVE127J – Lave-vaisselle encastrable 12 couverts – L60cm
279.99 € 390.99 €
Voir le deal

 

 Un clavier cliquable

Aller en bas 
5 participants
AuteurMessage
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Un clavier cliquable Empty
MessageSujet: Un clavier cliquable   Un clavier cliquable EmptyJeu 4 Juin 2015 - 19:32

Voici une petite réalisation que je viens de faire...

Les touches sont cliquables et il est même possible de les nommés (a,b,c, etc...) comme un vrai clavier par CAPTION. En plus grâce a PANEL le CAPTION est automatiquement centré.

Le défi c'était de faire un clavier en quelques ligne pour intégré dans une SUB.
Il ne reste plus qu'a faire la nomenclature (je ne sais pas si ca se dit comme ça !)
Et on aura un clavier complet.

PS : je n'ai pas rajouté les chiffres mais on peut aussi le faire simplement.

Aller trêve de Blabla, voila le résultat :

Code:
DIM a% , b% , c% , n% , x% , y% , t$ : ' Quelques variables..

DATA 1,17,8 , 5,17,8 , 9,17,8 , 13,17,8 , 30,25,15 , 34,25,8 , 46,17,24 , 50,25,8 :  ' Un peu de datas  !
DATA 64,25,8 , 76,34,42 , 81,103,86 , 82,23,6 , 83,23,6 , 84,23,6 , 85,23,14 , 0

DATA "éch",F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12 , imp,ver,pau
DATA " ",1,2,3,4,5,6,7,8,9,0,"°","+",ret , ins,ori,"p-"
DATA tab,A,Z,E,R,T,Y,U,I,O,P," "," ",sup,fin,"p+"
DATA vmaj,Q,S,D,F,G,H,J,K,L,M,"%","ù",ent
DATA maj,">",W,X,C,V,B,N,"?",".","/","§",maj," "
DATA ctr,win,alt,espace,agr,win,men,ctr," "," "," "

LABEL clic

HIDE 0 : WIDTH 0,337 : HEIGHT 0,160 : BORDER_SMALL 0

x%=8 : y%=10 : n%=1 : READ a% : ' On initialise un peu tout ca...

REPEAT : ' Une petite boucle pour la route

  PANEL n% : PARENT n%,0 : FONT_NAME n%,"Arial" : FONT_SIZE n%,6 : ON_CLICK n%,clic : ' Et hop !

  IF a%=n% : READ b% : READ c% : READ a%  : ELSE : b%=17 : c%=0 : END_IF

  LEFT n%,x% : TOP n%,y% : WIDTH n%,b% : HEIGHT n%,17 : x%=x%+17+c% : ' Et hop !

  IF n%=16 : y%=y%+5 : END_IF
  IF n%=16 OR n%=33 OR n%=49 OR n%=63 OR n%=77 : x%=8 : y%=y%+17 : END_IF

  n%=n%+1 : ' Et hop hop hop !!!

UNTIL n%=89

TOP 63,TOP(63)-17 : HEIGHT 63,HEIGHT(63)+17 : ' Il ne reste plus qu'a agrandir le touche ENTER
FOR n%=1 TO 88 : READ t$ : CAPTION n%,t$ : NEXT n%
SHOW 0 : END

clic:
    CAPTION 0,"Clic sur le panel "+STR$(NUMBER_CLICK)
RETURN
' Le tour est joué ... ou plutot le clavier est rtéalisé ! ;)


Dernière édition par Minibug le Jeu 4 Juin 2015 - 23:21, édité 1 fois
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Un clavier cliquable Empty
MessageSujet: Re: Un clavier cliquable   Un clavier cliquable EmptyJeu 4 Juin 2015 - 21:41

Bravo, en si peu de ligne, c'est un exploit. Après, je pense que pour afficher les symboles dans les touches, ça demande un peu plus de lignes: des data pour les codes normaux, d'autres pour quand on est en majuscules, d'autres pour quand on est en verr. num et les derniers pour quand on appuie sur alt gr.
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Un clavier cliquable Empty
MessageSujet: Re: Un clavier cliquable   Un clavier cliquable EmptyJeu 4 Juin 2015 - 23:23

Je viens de rajouter quelques lignes de DATAs pour le premier jet de la 'nomenclature'.

Ça ne gère pas encore Minuscules et Majuscules, mais c'est un début...

La suite au prochain épisode... Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Un clavier cliquable Empty
MessageSujet: Re: Un clavier cliquable   Un clavier cliquable EmptyVen 5 Juin 2015 - 8:20

Bravo, c'est déjà vachement plus complet avec les lettres et les noms des touches. Tu as aussi à trouver une astuce pour dessiner les flèches de direction (Changer la police de caractères par exemple)
En tout cas, le principe est là. Bonne continuation
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Un clavier cliquable Empty
MessageSujet: Re: Un clavier cliquable   Un clavier cliquable EmptyVen 5 Juin 2015 - 9:29

Bravo Minibug,

Ce qui me plait dans ton code, c'est la façon dont les touches du clavier sont dimensionnées (Width et Height): De manière automatique avec les DATA et grâce aux Panels, il fallait y penser.

J'apprends... Very Happy

A+
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Un clavier cliquable Empty
MessageSujet: Re: Un clavier cliquable   Un clavier cliquable EmptyVen 5 Juin 2015 - 12:03

Bonjour a tous !

@Jean Claude :
Merci et content que ca te convienne.
Comme je l'ai dis plus haut, je voulais un code léger pour une SUB.

Maintenant je vais travailler sur la nomenclature des touches MAJ et min, ainsi que les voyants VERROU MAJ et ARRET DEF... scratch drunken
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Un clavier cliquable Empty
MessageSujet: Re: Un clavier cliquable   Un clavier cliquable EmptyVen 5 Juin 2015 - 13:15

Tu pourra utiliser de petites LEDs dans le Panel pour l'état des touches, si tu veux. Eteinte => inactif / Alumée => actif
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Un clavier cliquable Empty
MessageSujet: Re: Un clavier cliquable   Un clavier cliquable EmptyVen 5 Juin 2015 - 21:46

Bonsoir Jicehel !

Pour les leds, c'est prévu ! t'inquiétes pas. Wink

Le plus dur c'est de coller aux leds du clavier.
Si on y regarde de près la commande SCANCODE capte l'appuie sur la touche VERROU MAJ, mais au démarrage du programme je n'ai aucune possibilité de savoir si c'est activé ou non !!

J'ai cherché sur internet mais rien pour l'instant. scratch

Il faudrait que je recherche sur le forum, voir comment Klaus et les autres avait réalisés leurs claviers virtuel. drunken drunken
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Un clavier cliquable Empty
MessageSujet: Re: Un clavier cliquable   Un clavier cliquable EmptySam 6 Juin 2015 - 12:10

Bonjour à tous,

Minibug a écrit:
Le plus dur c'est de coller aux leds du clavier.
Bin, maintenant, ça va être moins dur  lol!


Code:

' Panoramic 0.9.25

'   ==============================================================
'   =  Title  : LEDs clavier
'   =
'   =  Author : Silverman
'   =
'   =  Date   : Juin 2015
'   =
'   =  Version: 1.0
'   ==============================================================
'   Comments  : Controler les LEDs du clacier
'   ==============================================================

' Fonction "keybd_event":
' https://msdn.microsoft.com/en-us/library/windows/desktop/ms646304%28v=vs.85%29.aspx

' Virtual-Key Codes:
' https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx



dim null,result%
dim OldScroll%,OldNum%,OldCaps%,key%,c
dim memblock1%,memblock1$
dim memblock2%,memblock2$


' récupère l'état des LEDs
 GetNumLock()
 OldNum% = result%

 GetCapsLock()
 OldCaps% = result%

GetScrollLock()
 OldScroll% = result%

' éteindre les LEDs
for key%=1 to 255
   SetkeyState(key%,0)
next key%

' mais On aurais pu les éteindre aussi comme ça:  SetScrollLock(0):SetNumLock(0):SetCapsLock(0)


c = 0
repeat
   cls
   Print "Regardez les LEDs du clavier."
   print "Appuyez la barre d'espace pour terminer."
   print

   Select c
      case 0
         SetNumLock(0)
         SetCapsLock(0)
         setScrollLock(0)
        
      case 1
         SetNumLock(1)

      case 2
         SetCapsLock(1)

      case 3
         SetScrollLock(1)
   end_select

   ' on affiche une info
   for key%=1 to 255
      GetKeyState(key%)
      if result%>0
         print "Virtual-Key Codes = "+"0x"+hex$(key%)
      end_if
   next key%

   c = c + 1
   if c > 3 then c = 0
   wait 500

until scancode=32

' remettre les LEDs dans leur état initial
 SetScrollLock(OldScroll%)
 SetNumLock(OldNum%)
 SetCapsLock(OldCaps%)
 
 print
 print "Fini!"


END
' ******************************************************************************
sub GetPlatform()
   result% = 0
   dll_on "kernel32.dll"
   result% = dll_call0("GetVersion")
   dll_off
end_sub


sub GetKeyState(key%)
   result% = 0
   memblock2$=string$(256,chr$(0))
   GET_BUFFER_PTR(adr(memblock2%) , adr(memblock2$))
   dll_on "user32"
   null=dll_call1("GetKeyboardState",memblock2%)
   READ_BUFFER_BYTE(adr(result%),memblock2%,key%)
   dll_off
end_sub

sub SetKeyState(key%,turnon%)
dim_local null

   ' Windows 2000 / XP
   GetPlatform()
   if result% > 0
      GetKeyState(key%)
      if result% <> turnon%
         dll_on "user32.dll"
         null=dll_call4("keybd_event",key%,0,1,0)
         null=dll_call4("keybd_event",key%,0,3,0)
         dll_off
      end_if
   else
      ' Windows 98,ME
      dll_on "user32.dll"
      memblock1$=string$(256,chr$(0))
      GET_BUFFER_PTR(adr(memblock1%) , adr(memblock1$))
      null=dll_call1("GetKeyboardState",memblock1%)
      WRITE_BUFFER_BYTE(memblock1%,key%,turnon%)
      null=dll_call1("SetKeyboardState",memblock1%)
      dll_off
   end_if
end_sub


sub SetScrollLock(turnon%)
   SetKeyState(145,turnon%)
end_sub

sub GetScrollLock()
   result% = 0
   GetKeyState(145)
end_sub


sub SetCapsLock(turnon%)
   SetKEyState(20,turnon%)
end_sub

sub GetCapsLock()
   result% = 0
   GetKeyState(20)
end_sub


sub SetNumLock(turnon%)
   SetKeyState(144,turnon%)
end_sub

sub GetNumLock()
   result% = 0
   GetKeyState(144)
end_sub





'
' ##############################################################################
' #                                                                            #
' #      Bibliothèque de SUBs pour gérer des mémoires tampons V1.0             #
' #                                                                            #
' ##############################################################################
sub READ_BUFFER_BYTE(adr_destination%,adr_source%,buffer_position%)
' BYTE = OCTET(en français)
' adr_destination%  = adresse destination
' adr_source%       = adresse adr_source
' copie un BYTE, 0 < BYTE < 255
   poke adr_destination%,peek(adr_source% + buffer_position%)
end_sub


sub READ_BUFFER_WORD(adr_destination%,adr_source%,buffer_position%)
' WORD = 2 BYTEs
' adr_destination%  = adresse destination
' adr_source%       = adresse adr_source
' copie un WORD, 0 < WORD < 65535
   poke adr_destination%,peek(adr_source%+buffer_position%)
   poke adr_destination%+1,peek(adr_source%+1+buffer_position%)
end_sub


sub READ_BUFFER_DWORD(adr_destination%,adr_source%,buffer_position%)
' DWORD = 4 BYTEs
' adr_destination%  = adresse destination
' adr_source%       = adresse adr_source
' copie un DWORD, 0 < DWORD < 4294967295
   poke adr_destination%,peek(adr_source%+buffer_position%)
   poke adr_destination%+1,peek(adr_source%+1+buffer_position%)
   poke adr_destination%+2,peek(adr_source%+2+buffer_position%)
   poke adr_destination%+3,peek(adr_source%+3+buffer_position%)
end_sub


sub READ_BUFFER_LONG(adr_destination%,adr_source%,buffer_position%)
' LONG = 4 BYTEs
' adr_destination%  = adresse destination
' adr_source%       = adresse adr_source
' copie un LONG, –2147483648 < LONG < 2147483647
   poke adr_destination%,peek(adr_source%+buffer_position%)
   poke adr_destination%+1,peek(adr_source%+1+buffer_position%)
   poke adr_destination%+2,peek(adr_source%+2+buffer_position%)
   poke adr_destination%+3,peek(adr_source%+3+buffer_position%)
end_sub


sub READ_BUFFER_INT(adr_destination%,adr_source%,buffer_position%)
' INT = 4 BYTEs
' adr_destination%  = adresse destination
' adr_source%       = adresse adr_source
' copie un INTeger, –2147483648 < INT < 2147483647
   poke adr_destination%,peek(adr_source%+buffer_position%)
   poke adr_destination%+1,peek(adr_source%+1+buffer_position%)
   poke adr_destination%+2,peek(adr_source%+2+buffer_position%)
   poke adr_destination%+3,peek(adr_source%+3+buffer_position%)
end_sub


sub READ_BUFFER_FLOAT(adr_destination%,adr_source%,buffer_position%)
' FLOAT = 8 BYTEs
' adr_destination%  = adresse destination
' adr_source%       = adresse adr_source
' copie un FLOAT, -1,7976931348623157×10^308 < FLOAT < 1,7976931348623157×10^308
   poke adr_destination%,peek(adr_source%+buffer_position%)
   poke adr_destination%+1,peek(adr_source%+1+buffer_position%)
   poke adr_destination%+2,peek(adr_source%+2+buffer_position%)
   poke adr_destination%+3,peek(adr_source%+3+buffer_position%)
   poke adr_destination%+4,peek(adr_source%+4+buffer_position%)
   poke adr_destination%+5,peek(adr_source%+5+buffer_position%)
   poke adr_destination%+6,peek(adr_source%+6+buffer_position%)
   poke adr_destination%+7,peek(adr_source%+7+buffer_position%)
end_sub



'###############################################################################
sub WRITE_BUFFER_BYTE(adr_destination%,buffer_position%,byte%)
' BYTE = OCTET(en français)
' adr_destination%  = adresse destination
' byte% = 0 < BYTE < 255
   poke adr_destination%+buffer_position%,peek(adr(byte%))
end_sub


sub WRITE_BUFFER_WORD(adr_destination%,buffer_position%,word%)
' WORD = 2 BYTEs
' adr_destination%  = adresse destination
' word% = 0 < WORD < 65535
   poke adr_destination%+buffer_position%,peek(adr(word%))
   poke adr_destination%+1+buffer_position%,peek(adr(word%)+1)
end_sub


sub WRITE_BUFFER_DWORD(adr_destination%,buffer_position%,dword%)
' DWORD = 4 BYTEs
' adr_destination%  = adresse destination
' dword% = 0 < DWORD < 4294967295
   poke adr_destination%+buffer_position%,peek(adr(dword%))
   poke adr_destination%+1+buffer_position%,peek(adr(dword%)+1)
   poke adr_destination%+2+buffer_position%,peek(adr(dword%)+2)
   poke adr_destination%+3+buffer_position%,peek(adr(dword%)+3)
end_sub


sub WRITE_BUFFER_LONG(adr_destination%,buffer_position%,long%)
' LONG = 4 BYTEs
' adr_destination%  = adresse destination
' long% = –2147483648 < LONG < 2147483647
   poke adr_destination%+buffer_position%,peek(adr(long%))
   poke adr_destination%+1+buffer_position%,peek(adr(long%)+1)
   poke adr_destination%+2+buffer_position%,peek(adr(long%)+2)
   poke adr_destination%+3+buffer_position%,peek(adr(long%)+3)
end_sub


sub WRITE_BUFFER_INT(adr_destination%,buffer_position%,long%)
' INT = 4 BYTEs
' adr_destination%  = adresse destination
' int% = –2147483648 < INT < 2147483647
   poke adr_destination%+buffer_position%,peek(adr(long%))
   poke adr_destination%+1+buffer_position%,peek(adr(long%)+1)
   poke adr_destination%+2+buffer_position%,peek(adr(long%)+2)
   poke adr_destination%+3+buffer_position%,peek(adr(long%)+3)
end_sub


sub WRITE_BUFFER_FLOAT(adr_destination%,buffer_position%,float)
' FLOAT = 8 BYTEs
' adr_destination%  = adresse destination
' float   = -1,7976931348623157×10^308 < FLOAT < 1,7976931348623157×10^308
   poke adr_destination%+buffer_position%,peek(adr(float))
   poke adr_destination%+1+buffer_position%,peek(adr(float)+1)
   poke adr_destination%+2+buffer_position%,peek(adr(float)+2)
   poke adr_destination%+3+buffer_position%,peek(adr(float)+3)
   poke adr_destination%+4+buffer_position%,peek(adr(float)+4)
   poke adr_destination%+5+buffer_position%,peek(adr(float)+5)
   poke adr_destination%+6+buffer_position%,peek(adr(float)+6)
   poke adr_destination%+7+buffer_position%,peek(adr(float)+7)
end_sub



'###############################################################################
sub BUFFER_SIZE(adr_destination%,buffer_ptr%)
' retouve la taille du buffer
   poke adr_destination%,peek(buffer_ptr%-4)
   poke adr_destination%+1,peek(buffer_ptr%-3)
   poke adr_destination%+2,peek(buffer_ptr%-2)
   poke adr_destination%+3,peek(buffer_ptr%-1)
end_sub


sub FILL_BUFFER(buffer_ptr%,value%)
' uniquement des BYTEs
dim_local size%,i
   value%=bin_and(value%,255)
   BUFFER_SIZE(adr(size%),buffer_ptr%)
   size%=size%-1
   for i=0 to size%
      poke buffer_ptr%+i,value%
   next i
end_sub


sub CLEAR_BUFFER(buffer_ptr%)
' effacer un buffer revient à le remplir de 0
   FILL_BUFFER(buffer_ptr%,0)
end_sub


sub DISPLAY_BUFFER(buffer_ptr%,c$)
' affiche le contenu du buffer
dim_local buffer_position%,i,value,tmp%,tmp,j,k
   buffer_position%=0
   c$=upper$(c$)
   for i=1 to len(c$)
      value=asc(mid$(c$,i,1))
      select value
         case 66
            tmp%=0
            READ_BUFFER_BYTE(adr(tmp%),buffer_ptr%,buffer_position%)
            buffer_position%=buffer_position%+1
            print tmp%

         case 68
            tmp%=0
            READ_BUFFER_DWORD(adr(tmp%),buffer_ptr%,buffer_position%)
            buffer_position%=buffer_position%+4
            print tmp%

         case 70
            tmp=0
            READ_BUFFER_FLOAT(adr(tmp),buffer_ptr%,buffer_position%)
            buffer_position%=buffer_position%+8
            k=0 : for j=0 to 7 : k=k+peek(adr(tmp)+j) : next j
            if k=2040
               print "NaN"
            else
               print tmp
            end_if

         case 73
            tmp%=0
            READ_BUFFER_INT(adr(tmp%),buffer_ptr%,buffer_position%)
            buffer_position%=buffer_position%+4
            print tmp%

         case 76
            tmp%=0
            READ_BUFFER_LONG(adr(tmp%),buffer_ptr%,buffer_position%)
            buffer_position%=buffer_position%+4
            print tmp%

         case 87
            tmp%=0
            READ_BUFFER_WORD(adr(tmp%),buffer_ptr%,buffer_position%)
            buffer_position%=buffer_position%+2
            print tmp%
      end_select
   next i
end_sub


sub GET_BUFFER_PTR(adr_destination%,adr_source%)
' retrouve l'adresse du pointeur
   poke adr_destination%,peek(adr_source%)
   poke adr_destination%+1,peek(adr_source%+1)
   poke adr_destination%+2,peek(adr_source%+2)
   poke adr_destination%+3,peek(adr_source%+3)
end_sub


sub DEBUG(adr%, tai%)
dim_local i,k
   print
   for i=0 to tai%-1
      k=peek(adr%+i)
      if k<16
         print "0";hex$(k);" ";
      else
         print hex$(k);" ";
      end_if
   next i
   print
   for i=0 to tai%-1
      k=peek(adr%+i)
         print chr$(k);"  ";
   next i
   print
end_sub


Les SUBs SetkeyState(key%) et GetkeyState(key%) ne sont pas du tout nécessaire, mais elle te seront peut-être utile pour une gestion plus souple(peut-être, j'en suis pas tout à fait certain) du clavier, c'est pour ça que je les aies inclus dans le code.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Un clavier cliquable Empty
MessageSujet: Re: Un clavier cliquable   Un clavier cliquable EmptySam 6 Juin 2015 - 12:13

@Minibug:
KGF.dll contient la fonction "GetKeyboardState"...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Un clavier cliquable Empty
MessageSujet: Re: Un clavier cliquable   Un clavier cliquable EmptySam 6 Juin 2015 - 14:16

Je n'ai pas de led pour vérifier directement le programme mais j'ai regardé les fonctions et c'est un super boulot très pratique.
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Un clavier cliquable Empty
MessageSujet: Re: Un clavier cliquable   Un clavier cliquable EmptySam 6 Juin 2015 - 15:18

Bonjour tous le monde !

Merci silverman et Klaus pour votre aide...

Ca devrait permettre d'avancer dans ma démarche... Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Contenu sponsorisé





Un clavier cliquable Empty
MessageSujet: Re: Un clavier cliquable   Un clavier cliquable Empty

Revenir en haut Aller en bas
 
Un clavier cliquable
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» clavier de piano et notes
» AFFICHER LE CLAVIER VIRTUEL
» bibliothèque des touches du clavier
» Vider le buffer clavier
» Un tout petit clavier

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les inutilitaires-
Sauter vers: