gestion clavier azerty et chiffres sur pc portable

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

gestion clavier azerty et chiffres sur pc portable

Message par david »

Bonjour à tous

J'ai un pc windows7 pro, sans clavier numérique, alors que j'ai besoin de taper des chiffres très régulièrement
J'aurais donc besoin que les touches correspondant aux chiffres (ligne en haut du clavier) soit toujours actives par défaut pour envoyer 12345... plutôt que &é"'(
(et pouvoir envoyer &é"'( si j'appuie en même temps sur shift)
et que je puisse toujours saisir les lettres en minuscule et majuscule comme à l'habitude en AZERTY

J'ai fait des recherches, le clavier QWERTY gère ça apparemment très bien mais pas AZERTY
ps: je ne peux pas utiliser la touche LN, qui gère d'autres choses encore moins pratiques sur ledit PC, et que j'ai du désactiver!

J'ai vu qu'il existe la notion de "clavier numérique" sur internet mais mon pc professionnel sans droits ADMIN ne semble pas pouvoir modifier cela, en tout cas je n'ai rien trouvé même s'il me semble possible de changer la langue du clavier.

Du coup je me demande s'il ne serait pas plus simple de faire un programme qui tourne en boucle qui dit
test si touche "&" appuyée envoyer "1" (sauf si appuie simultané sur SHIFT+ "&" met "&") et faire ça pour 1,2,3,4....

quelqu'un a t'il déjà rencontré ce problème et trouvé une autre parade (simple si possible)?
merci par avance pour votre aide

j'ai pensé faire:

If OpenWindow....
repeat
If KeyboardPushed...
forever

après, vu mon niveau de débutant c'est là que tout ce complique...

je ne comprends pas pourquoi sous QWERTY il propose par défaut 12345
et que sous AZERTY on se tape &é"'( par défaut et que ce soit compliqué pour utiliser des chiffres
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: gestion clavier azerty et chiffres sur pc portable

Message par Ar-S »

Du coup je me demande s'il ne serait pas plus simple de faire un programme qui tourne en boucle qui dit
test si touche "&" appuyée envoyer "1" (sauf si appuie simultané sur SHIFT+ "&" met "&") et faire ça pour 1,2,3,4....
Clairement non, ce ne sera pas "plus simple" ^^
Ce que tu souhaites faire nécessite du callback, des hook de clavier à gogo, des Api etc...

Et activer "Verr maj" au démarrage du PC ?
Après tu prends l'habitude de laisser ton petit doit sur Shift(maj) pour écrire en min et les symboles.

Code : Tout sélectionner

; Activer maj (non stop)
keybd_event_ ( #VK_SHIFT ,0,0,0)

; Désactiver maj (non stop)
keybd_event_ ( #VK_SHIFT ,0,2,0)

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Marc56
Messages : 2147
Inscription : sam. 08/févr./2014 15:19

Re: gestion clavier azerty et chiffres sur pc portable

Message par Marc56 »

... ou acheter un pavé numérique USB ~10€, aucun driver à installer :P
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: gestion clavier azerty et chiffres sur pc portable

Message par poshu »

Aloooooooooooors... T'as pas les droits d'admin? Donc installer un programme du type AutoHotKey c'est pas possible? Même chose, installer un profile de clavier personnalisé, pas possible non plus?

Sinon, oui, ton app est pas super compliquée en soit, mais va falloir passer par de l'API windows; ce qui n'est pas le plus accessible pour un débutant. En gros, il faut que tu fasses un Key logger. Si t'as un antivirus un brin nerveux, il va pas bien le prendre du tout :/
boby
Messages : 261
Inscription : jeu. 07/juin/2007 22:54

Re: gestion clavier azerty et chiffres sur pc portable

Message par boby »

Code : Tout sélectionner

Global hook
Procedure SendKey(Option.l)
  keybd_event_(#VK_SHIFT,0,0,0) 
  keybd_event_(Option,0,0,0) 
  keybd_event_(Option,0,#KEYEVENTF_KEYUP,0) 
  keybd_event_(#VK_SHIFT,0,#KEYEVENTF_KEYUP,0) 
  ;Delay(60)
EndProcedure

Procedure.l Hook(nCode, wParam, *p.KBDLLHOOKSTRUCT)
   If nCode = #HC_ACTION
     If wParam = #WM_KEYDOWN
       Select *p\vkCode
         Case Asc("1")
           SendKey(#VK_1)
           ProcedureReturn -1
         Default
           ProcedureReturn CallNextHookEx_(hook, nCode, wParam, lParam)
       EndSelect
     EndIf
   EndIf
EndProcedure


#WH_KEYBOARD_LL = 13
hook = SetWindowsHookEx_(#WH_KEYBOARD_LL,@Hook(),GetModuleHandle_(0),0)
OpenWindow(0,0,0,0,0,"",#PB_Window_Invisible)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Probablement pas le plus optimal, mais ça marche, je te laisse le compléter.
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

Re: gestion clavier azerty et chiffres sur pc portable

Message par david »

Bonjour à tous et merci pour vos réponses!
C'est déjà en voie d'être réglé sous peu, grâce à votre aide
Ar-S / Et activer "Verr maj" au démarrage du PC
Le problème serait de devoir repasser en minuscule pour écrire des mots
Marc56 / acheter un pavé numérique USB
Oui, c'est pour ne pas rajouter du bordel sur mon bureau (je n'ose même pas dire tout ce qui traîne...)
poshu / T'as pas les droits d'admin?
Et non, mes possibilités sont très limités (et celles du PC aussi)
boby / code
Ca marche super!!!, je vais maintenant essayer de l'adapter
Je voudrais qu'il affiche toujours les chiffres (qu'il soit en minuscules ou en majuscules)
comme ça je ne me prend plus la tête à regarder sur le voyant ou j'en suis, je sais qu'il tape des chiffres (c'est ce que je lui demande a 95%)
Après, comme on a besoin de temps en temps de: " ' é è
je vais essayer de voir si j'arrive à lui dire, toujours faire "SendKey(#VK_1)", sauf si appuie simultanée sur SHIFT ((que je sois en minuscule ou majuscule))

En bref, la touche MAJ permet de basucler de minuscule en majuscule et réciproquement
Ma ligne de touches serait toujours des chiffres, sauf si appuie simultanée sur SHIFT ferait des: &é"('

Je vais essayer de bidouiller ça, en tout cas la procédure n'est pas bloquée par le pc et l'antivirus c'est super cool!!!
Il faut que j'arrive a tester l'appuie simultanée de SHIFT (ou de trouver une autre touche qui aurait une fonction comme MAJ avec une position oui/non pour faire des chiffres ou non...
xica
Messages : 1
Inscription : mer. 25/oct./2023 10:24

Re: gestion clavier azerty et chiffres sur pc portable

Message par xica »

Bonjour,

Je suis intéressée par le hook de boby mais je ne sais pas comment faire, où le mettre, etc...
Pouvez-vous m'aider, merci
boddhi
Messages : 595
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: gestion clavier azerty et chiffres sur pc portable

Message par boddhi »

xica a écrit : Je suis intéressée par le hook de boby mais je ne sais pas comment faire, où le mettre, etc...
Bonjour,

C'est un peu délicat de répondre précisément à ta demande sans que tu fournisses un minimum d'infos sur ton propre code et son architecture.
C'est un peu comme si tu demandais où mettre un lave-linge chez toi sans fournir les plans de ton habitation avec les emplacements d'arrivées d'eau et d'électricité...

En l'espèce, le code est utilisable tel que fourni. En gros, le plus simple étant de placer les procédures SendKey() et Hook() avant l'appel à la commande SetWindowsHookEx_(), elle-même appelée (à la racine du prog ou à partir d'une procédure) impérativement avant la boucle d'évènements Repeat:WaitWindowEvent():Until, en t'assurant que la variable "hook" soit bien définie en Global pour qu'elle puisse être récupérée dans la procédure Hook().
boddhi
Messages : 595
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: gestion clavier azerty et chiffres sur pc portable

Message par boddhi »

Une approche très légèrement différente, avec activation ou arrêt de l'interception des touches 0 à 9 du clavier simple :

Code : Tout sélectionner

EnableExplicit

Global IDProcInterceptionClavier
#Fenetre=0
Enumeration
  #Gadget1
  #Gadget2
EndEnumeration

Procedure   Fc_InterceptionEvenementClavier(ArgCodeHook,ArgCodeTouche,ArgLParam)
  If ArgCodeHook>=0
    If Not ArgLParam & $80000000 ; Touche enfoncée
      If ArgCodeTouche>=#VK_0 And ArgCodeTouche<=#VK_9
        ArgCodeTouche+#VK_NUMPAD0-48
        keybd_event_(ArgCodeTouche,0,0,0)
        keybd_event_(ArgCodeTouche,0,#KEYEVENTF_KEYUP,0) 
        ProcedureReturn -1
      EndIf
    EndIf
  EndIf
  ProcedureReturn CallNextHookEx_(IDProcInterceptionClavier,ArgCodeHook,ArgCodeTouche,ArgLParam)
EndProcedure
;
Procedure   Pc_ActivationOuArretInterceptionClavier()
  Protected StatutGadget=GetGadgetData(#Gadget2)
  
  Select StatutGadget
    Case 0
      If Not IDProcInterceptionClavier
        Debug "Activation interception"
        IDProcInterceptionClavier=SetWindowsHookEx_(#WH_KEYBOARD,@Fc_InterceptionEvenementClavier(),#Null,GetCurrentThreadId_())
        SetGadgetText(#Gadget2,"Ne plus intercepter")
        SetGadgetData(#Gadget2,1)
      EndIf
    Case 1
      If IDProcInterceptionClavier
        Debug "Arrêt interception"
        UnhookWindowsHookEx_(IDProcInterceptionClavier)
        IDProcInterceptionClavier=0
        SetGadgetText(#Gadget2,"Intercepter")
        SetGadgetData(#Gadget2,0)
      EndIf
  EndSelect
  SetActiveGadget(#Gadget1)
EndProcedure
;
If OpenWindow(#Fenetre,0,0,400,80,"Test clavier 0 à 9",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
  StringGadget(#Gadget1,10,10,380,25,"")
  ButtonGadget(#Gadget2,140,45,120,20,"")
  ; Activation interception clavier
  Pc_ActivationOuArretInterceptionClavier()
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_Gadget
        Select EventGadget()
          Case #Gadget2
            Pc_ActivationOuArretInterceptionClavier()
        EndSelect
      Case #PB_Event_CloseWindow
        Break
    EndSelect
  ForEver
  ; Arrêt interception clavier
  Pc_ActivationOuArretInterceptionClavier()
EndIf
brossden
Messages : 818
Inscription : lun. 26/janv./2004 14:37

Re: gestion clavier azerty et chiffres sur pc portable

Message par brossden »

Denis

Bonne Jounée à tous
Avatar de l’utilisateur
cage
Messages : 506
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: gestion clavier azerty et chiffres sur pc portable

Message par cage »

Bonjour a tous,

Lorsqu'on rencontre un problème avec le clavier de son PC, il existe la possibilité d'utiliser un clavier virtuel comme sur Android

Lancer le clavier virtuel : Win+R -> Ouvrir : osk.exe (On Screen Keyboard)

Autre possibilité, clic droit sur la barre des tâches et cocher Afficher le bouton clavier tactile (Win10 et Win11 ?)

cage
■ Win10 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.00 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Répondre