PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Touche verrouillage majuscule
Touche verrouillage majuscule
Iniciado por m.valette, 22,sep. 2005 15:18 - 3 respuestas
Publicado el 22,septiembre 2005 - 15:18
Bonjour!
Y a t il un moyen de savoir si la touche Verouillage/Majuscule est active ou non?
Merci bcp
Mickael
Publicado el 23,septiembre 2005 - 03:24
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
Publicado el 26,septiembre 2005 - 12:10
merci beaucoup!!
ca marche parfaitement ;o)
Bon dev
@+
Mickael
Publicado el 27,marzo 2006 - 16:05
SUPER CHOUETTE ton Truc

Merci bp