PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Touche verrouillage majuscule
Touche verrouillage majuscule
Started by m.valette, Sep., 22 2005 3:18 PM - 3 replies
Posted on September, 22 2005 - 3:18 PM
Bonjour!
Y a t il un moyen de savoir si la touche Verouillage/Majuscule est active ou non?
Merci bcp
Mickael
Posted on September, 23 2005 - 3:24 AM
Bonjour,

2 Méthodes :

une 1ere methode simple "pour simplifier la vie à un programmeur :) " c'est de créer un champ qui sera juste utilisé pour intersepter l'envoie d'une touche clavier.
Exemple avec le champ : "Texte1"
Envoietouche("A",Texte1)
si sansespace(Texte1)="A"
info("Alors là le Ver/Majuscule est desactivé","Saisie en minuscule")
fin
si sansespace(Texte1)="a"
info("Alors là le Ver/Majuscule est activé","Saisie en majuscule")
fin
// Est oui c'est tout à fait le contraire de ce que le champ affiche!! "a" =>Maj//"A" =>Min
à vous de tester ....... :) :)

une 2eme methode 'pour planger dans le trou noir des API :)' : il faut utiliser l'API windows correspondante et il faut traiter la chaine memorisée ds la variable !

tChaine est une chaine fixe sur 256
AppelDLL32("USER32","GetKeyboardState",&tChaine)
//sachant que :
// verouillage MAJ/MIN égale à = 21
// verouillage numerique égale à = 145
// verouillage Arrêt/défil. égale à = 146

//Pour le test de MAJ/MIN
si milieu(tChaine,21,1)=Caract(1)
info("La saisie est en MAJ")
sinon
info("La saisie est en MIN")
fin

//Pour le test de VERR/NUM
si milieu(tChaine,145,1)=Caract(1)
info("Verouillage numérique actif")
sinon
info("Verouillage numérique inactif")
fin

//Pour le test de ARRET DEFIL
si milieu(tChaine,146,1)=Caract(1)
info("Arrêt défil actif")
sinon
info("Arrêt défil inactif")
fin

// Un cadeau de plus :) = API pour changer les valeurs (Actif/inactif) des 3 touches.

tChaine est une chaine fixe sur 256
AppelDLL32("USER32","GetKeyboardState",&tChaine)
// verouillage MAJ/MIN égale à = 21
// verouillage numerique égale à = 145
// verouillage Arrêt/défil. égale à = 146
VotreTouche est un entier // ! ou 5 ou 6 suivant votre cas utilisez !
//pour activer la touche // caract(1) pour la desactiver Carct(0)
tchaine=tChaine[[1 à (VotreTouche-1)]]+Caract(1)tChaine[[(VotreTouche+1) à 256]]
AppelDLL32("USER32","SetKeyBoardState",&tChaine)

NB: l'API Change la valeur de la touche mais n'allume pas le temoin lumineu du clavier :(


Bon dev.

Ali Hindi
AliDev7@yahoo.fr
Posted on September, 26 2005 - 12:10 PM
merci beaucoup!!
ca marche parfaitement ;o)
Bon dev
@+
Mickael
Posted on March, 27 2006 - 4:05 PM
SUPER CHOUETTE ton Truc

Merci bp