Benutzer mit den meisten Antworten
Bildschirmtastatur (auf Win10-Tablet) per VBA in MS Access (Office 365) ein- und ausblenden?

Frage
-
Hallo, ich möchte für die Dateneingabe in bestimmte Felder einer Access-DB die Bildschirmtastatur des Tablets nutzen. Beim Betreten eines entsprechenden Feldes soll sie automatisch eingeblendet und beim Verlassen des Feldes wieder ausgeblendet werden. Ich möchte dies mit VBA realisieren.
Ich weiss, dass Access nicht für Tablet-Anwendungen optimiert ist. Meine Suche nach entsprechenden Code-Beispielen war bisher nicht erfolgreich.
Wer kann mir auf die Sprünge helfen?
- Verschoben Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 16. März 2016 06:44 VBA-Frage (aus: Windows-Apps)
Antworten
-
Es gibt zwei Bildschirmtastaturen, die ältere osk.exe und die neuere TabTip.exe. Aufrufen kann man sie wie folgt:
Im Kopf des Moduls
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
Im gewünschten Ereignis (zum Beispiel Text1_Enter):
Dim ret As Long ret = ShellExecute(0, vbNullString, "osk.exe", vbNullString, "C:\Windows\System32", 1) If ret <= 32 Then Call MsgBox("Tastatur anzeigen ist fehlgeschlagen, vbOkOnly,"Tastatur") End If
respektive
Dim ret As Long ret = ShellExecute(0, vbNullString, "TabTip.exe", vbNullString, "C:\Program Files\Common Files\Microsoft Shared\ink", 1) If ret <= 32 Then Call MsgBox("Tastatur anzeigen ist fehlgeschlagen, vbOkOnly,"Tastatur") End If
Matthias Kläy, Kläy Computing AG
- Als Antwort vorgeschlagen MCDPone Dienstag, 22. März 2016 10:39
- Als Antwort markiert Peter DoeringMVP, Moderator Samstag, 26. März 2016 23:55
Alle Antworten
-
Es gibt zwei Bildschirmtastaturen, die ältere osk.exe und die neuere TabTip.exe. Aufrufen kann man sie wie folgt:
Im Kopf des Moduls
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
Im gewünschten Ereignis (zum Beispiel Text1_Enter):
Dim ret As Long ret = ShellExecute(0, vbNullString, "osk.exe", vbNullString, "C:\Windows\System32", 1) If ret <= 32 Then Call MsgBox("Tastatur anzeigen ist fehlgeschlagen, vbOkOnly,"Tastatur") End If
respektive
Dim ret As Long ret = ShellExecute(0, vbNullString, "TabTip.exe", vbNullString, "C:\Program Files\Common Files\Microsoft Shared\ink", 1) If ret <= 32 Then Call MsgBox("Tastatur anzeigen ist fehlgeschlagen, vbOkOnly,"Tastatur") End If
Matthias Kläy, Kläy Computing AG
- Als Antwort vorgeschlagen MCDPone Dienstag, 22. März 2016 10:39
- Als Antwort markiert Peter DoeringMVP, Moderator Samstag, 26. März 2016 23:55