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

hanubis37 5 Messages postés mardi 14 juin 2005Date d'inscription 1 février 2012 Dernière intervention - 31 janv. 2012 à 14:53 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 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 

6 réponses

Répondre au sujet
Utilisateur anonyme - 2 févr. 2012 à 23:55
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Utilisateur anonyme
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 3 févr. 2012 à 06:56
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 3 févr. 2012 à 10:15
+1
Utile
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 3 févr. 2012 à 06:59
0
Utile
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 3 févr. 2012 à 07:10
0
Utile
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
hanubis37 5 Messages postés mardi 14 juin 2005Date d'inscription 1 février 2012 Dernière intervention - 3 févr. 2012 à 09:10
0
Utile
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.