Utilisation du clavier visuel Windows sous VB.NET

[Résolu]
Signaler
Messages postés
5
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
1 février 2012
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour tout le monde,

Je cherche une aide sur l'utilisation du clavier Windows en VB.NET.
J'aimerai pouvoir le gérer (le verrouiller, le baisser, le rappeler, ...)

Merci d'avance.

6 réponses


Salut,

L’exécutable se trouve dans : %windir%\system32\osk.exe
il suffirait de faire un shell pour l'ouvrir (en différents modes) et un "kill process" pour le fermer.

Nous avons (pour le kill proc) par exemple une source déposée par notre ami capuccino SUR CE LIEN

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,

il te faut pour ce faire jouer avec quelques fonctions de l'Api de Windows
1) extraire le handle de la fenêtre de ton clavier visuel"
2) agir sur la fenêtre qui a ce handle.
Exemple :
Ici je vais le cacher, puis le montrer :
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private toto As Long
Private Sub Command1_Click()
   toto = FindWindow(vbNullString, "Clavier visuel")
   ShowWindow toto, 0
   MsgBox "caché"
   ShowWindow toto, 1
   MsgBox "montré"
End Sub

Voilà pour l'exemple.
A toi de choisir et utiliser maintenant les fonctions d'action sur cette fenêtre qui t'intéressent. Regarde sur le site de AllApi (regarde par exemple SetWindowPos, EnableWindow , ...)





____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Tu sembles alors avoir besoin de quelque-chose comme ceci :
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Sub SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Private toto As Long
Private Sub Command1_Click()
   Dim lStyle As Long, agauche As Long, enhaut As Long
   Dim tR As RECT
   toto = FindWindow(vbNullString, "Clavier visuel")
   GetWindowRect toto, tR
   lStyle = GetWindowLong(toto, -16)
   lStyle = lStyle And Not &H20000
   SetWindowLong toto, -16, lStyle
   agauche = 0
   enhaut = 0
   SetWindowPos toto, 0, agauche, enhaut, tR.Right - tR.Left, tR.Bottom - tR.Top, &H20
   MsgBox "je l'ai ici mis en haut et à gauche de ton écran et j'ai fait sauter son bouton de réduction"
   ShowWindow toto, 0
   MsgBox "caché"
   ShowWindow toto, 1
   MsgBox "montré"
End Sub


Voilà ! modifie à ta guise les valeurs agauche et enhaut.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Ah oui : ===>>>
Attention : mon exemple est fait sous VB6.
Sous VB.NET ===>>> Les Long en Integer.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Et en ce qui concerne "le verrouiller" : je ne comprends pas l'utilité de le verrouiller seul, d'ailleurs !
Si tu veux le verrouiller, autant verrouiller également le clavier réel ! (fonction BlockInput de l'api de Windows).


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
5
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
1 février 2012

Merci pour toutes ces réponses.

Je veux utiliser le clavier visuel de Windows dans le cadre d'un TPV (Terminale Point de Vente). On voudrait ne plus à avoir le clavier physique devant l'utilisateur et ne pas avoir non plus à développer notre propre clavier visuel.

Quand je parle de verrouiller le clavier, ce que je veux dire c'est qu'il ne puisse pas se mettre derrière ma fenêtre principale, ni dans la barre des taches qui ne sera plus visible.