Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

clavier virutel windows

paskikic

XLDnaute Occasionnel
bonjour a vous tous les Xlnautes

je cherche a ouvrir mon clavier windows via excel lorsque je clic sur une cellules, j ai cherche sur le web mais pas de solutions trouvees.

ils partent tous de Shell "C:\WINDOWS\system32\osk.exe" mais je n arrive pas a le lancer!!!

qqn aurait il une idee

MERCI encore
 

Yurperqod

XLDnaute Occasionnel
Bonjour le forum

Quelle version de Windows utilisée?

Avec Windows 7, ces deux macros marchent.
VB:
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Sub macro1()
ShellExecute 0, vbNullString, "osk.exe", vbNullString, "C:\", 1
End Sub
Sub macro2()
Dim appli
appli = Shell("c:\windows\system32\osk.exe", 1)
End Sub
 
Dernière édition:

paskikic

XLDnaute Occasionnel
salut Ce lien n'existe plus
Ce lien n'existe plus
moi j ai windows10 et les 2 ne fonctionnent pas la macro 1 me dit impossible de demarrer le clavier
quand a la 2 dit erreur d execution 5

merci quand meme
 

Yurperqod

XLDnaute Occasionnel
Avec Windows 10, on peut activer ou désactiver le clavier virtuel.

Voir dans les paramètres Windows.

On trouve des explications dans Google.

Est-ce que le clavier s'affiche si tu le lances manuellement?
Touche Windows+R puis inscrire osk.exe puis appuie sur la toucher ENTREE.
 
Dernière édition:

Yurperqod

XLDnaute Occasionnel
Bonjour le forum

Pour Windows 10, tester cette macro (écrite au départ pour Windows 8)
VB:
Const SW_SHOW = 1
Const SW_SHOWMAXIMIZED = 3

#If VBA7 Then
Public Declare PtrSafe Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA" _
  (ByVal hwnd As Long, _
   ByVal lpOperation As String, _
   ByVal lpFile As String, _
   ByVal lpParameters As String, _
   ByVal lpDirectory As String, _
   ByVal nShowCmd As Long) As Long
#Else
Public Declare Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA" _
  (ByVal hwnd As Long, _
   ByVal lpOperation As String, _
   ByVal lpFile As String, _
   ByVal lpParameters As String, _
   ByVal lpDirectory As String, _
   ByVal nShowCmd As Long) As Long
#End If

Sub openTouchKeyboard()
  Dim RetVal As Long
  On Error Resume Next
  RetVal = ShellExecute(0, "open", "C:\Program Files\Common Files\microsoft shared\ink\TabTip.exe", _
  0, "C:\Program Files\Common Files\microsoft shared\ink\", SW_SHOWMAXIMIZED)
End Sub

Public Function closeIfOpen() As Boolean
Dim objWINMGMTS As Object
Dim objApps As Object
Dim objApp As Object
Set objWINMGMTS = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objApps = objWINMGMTS.ExecQuery("select * from win32_process where name='tabtip.exe'") 'or osk.exe depending on kb in use
For Each objApp In objApps
objApp.Terminate
Next
End Function
 

paskikic

XLDnaute Occasionnel
salut Ce lien n'existe plus

malheureusement, ca s execute mais n ouvre pas le clavier et me met un message d erreur me disant impossible d ouvrir le clavier virtuel alors qu il est bie present et se lance de exe
 

david84

XLDnaute Barbatruc
Bonjour,
pour afficher le clavier en passant par ShellExecute et par WMI (testé sous Windows 10) :
Code:
Const SW_SHOW = 1

#If Win64 Then
Public Declare PtrSafe Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA" _
  (ByVal hwnd As Long, _
   ByVal lpOperation As String, _
   ByVal lpFile As String, _
   ByVal lpParameters As String, _
   ByVal lpDirectory As String, _
   ByVal nShowCmd As Long) As Long
#Else
Public Declare Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA" _
  (ByVal hwnd As Long, _
   ByVal lpOperation As String, _
   ByVal lpFile As String, _
   ByVal lpParameters As String, _
   ByVal lpDirectory As String, _
   ByVal nShowCmd As Long) As Long
#End If

Sub openKeyboard()
  Dim RetVal As Long
  On Error Resume Next
  RetVal = ShellExecute(0, "open", "osk.exe", 0, "%windir%\system32\osk.exe", SW_SHOW)
End Sub

Pour le fermer :
Code:
Sub closeKeyboard()
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process where caption='osk.exe'", , 48)
For Each objItem In colItems
    objItem.Terminate
Next
End Sub
A+
 

Yurperqod

XLDnaute Occasionnel
Bonjour le forum

David84
Ton code est une adaptation pour osk.exe de celui posté dans mon message N°8
Comme tu as Windows 10, tu peux tester le code que j'ai posté, stp?

Est-ce que ca marche avec tabtip.exe ?
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…