Utilisation du clavier visuel Windows sous VB.NET [Résolu]

Messages postés
5
Date d'inscription
mardi 14 juin 2005
Dernière intervention
1 février 2012
- - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 3 févr. 2012 à 10:15
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.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
2
Merci
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
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
5
Date d'inscription
mardi 14 juin 2005
Dernière intervention
1 février 2012
0
Merci
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.
Commenter la réponse de hanubis37

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.