Newsgroup: it.comp.appl.access
Titolo: aprire la tastiera virtuale di windows 10

se digito in cortana osk si apre la tastiera virtuale
se eseguo questo codice in vba di access xp non apre la tastiera virtuale
 
Public Sub ApriTastiera(strURL$)
Dim lVal As Integer
 
lVal = ShellExecute(1, "open", strURL, "", "", 1)
 
End Sub 
 
poi eseguo 
ApriTastiera ("osk.exe") 
 
qualcuno sa dirmi il motivo e come risolvere?
oppure esiste una tastiera in access alternativa?
 
grazie.


in un modulo metti
 
Option Compare Database
Private Declare Function ShellExecute Lib "shell32.dll" Alias 
"ShellExecuteA" (ByVal hWnd As Long, ByVal lpszOp As String, ByVal 
lpszFile As String, ByVal lpszParams As String, ByVal LpszDir As String, 
ByVal FsShowCmd As Long) As Long
Private Declare Function Wow64EnableWow64FsRedirection Lib 
"kernel32.dll" (ByVal Enable As Boolean) As Boolean
Private Declare Function GetProcAddress Lib "Kernel32" (ByVal hModule As 
Long, ByVal lpProcName As String) As Long
Private Declare Function GetModuleHandle Lib "Kernel32" Alias 
"GetModuleHandleA" (ByVal lpModuleName As String) As Long
Private Declare Function GetCurrentProcess Lib "Kernel32" () As Long
Private Declare Function IsWow64Process Lib "Kernel32" (ByVal hProc As 
Long, bWow64Process As Boolean) As Long
 
 
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
 
 
per richimare la tastiera ti basta sul evento che vuoi mettere
 
openTouchKeyboard
 
 
funziona alla grande
 
ciao
 
BFS


Servono veramente tutte quelle API... oppure bastava la ShellExecute...?
 
@Alex


solo la shell :-)
è che ho copiato da un modulo che mi permette anche di gestire la firma 
disegnata sullo schermo, la chiusura della tastiera virtuale etc
 
ciao
BFS
 
 
 

Il giorno giovedì 15 marzo 2018 16:21:27 UTC+1, BFS ha scritto:

nulla da fare, a me non si apre la tastiera virtuale, se clicco start esegui tabtip.exe la apre se eseguo il tuo codice da vba non apre la tastiera, quale sarà il motivo? forse che windows 10 ultima versione non autorizza vba ad aprire la tastiera e si deve fare qualcosa a livello di permessi?

Prova ad usare quell'exe direttamente da Shell non ShellExecute, oppure Meglio ancora da FollowHyperlink ma serve il path.
 
@Alex

 @Alex
 
come da shell? in che senso?


ho quali l'idea di creare una form che simula una tastiera secondo voi è una buona strada?
una form con i tasti come la tastiera e su click di un pulsante
textbox=textbox & "A"
textbox=textbox & "B"
 

 @Alex
 
ho provato FollowHyperlink cosi
    Application.FollowHyperlink "C:\Windows\System32\osk.exe", , True
ma mi dice : errore di run-time '490': Impossibile aprire il file specificato.


verifica il path
 
ciao


verificato infatti eseguendo in start\esegui la riga di comando
C:\Windows\System32\osk.exe apre correttamente la tastiera virtuale
 
eseguito in vba cosi 
Application.FollowHyperlink "C:\Windows\System32\osk.exe", , True 
non va


Essendo un EXE...
Dim retVal As Variant
retVal = SHELL("osk.exe",vbNormalfocus)
 
oppure:
Dim retVal As Variant
retVal = SHELL("C:\Windows\System32\osk.exe",vbNormalfocus)
 
@Alex


Ehi moro, feeeeermo la
"Firma disegnata sullo schermo" ?
Lo sai che sbilanciarsi a descrivere una qualsiavollia funzionalita' 
interessante implica poi descriverla minuziosamente?
E come fai a far firmare?
Perche' immagino sia una cosa che poi gira su palmari o simili tipo i 
terminalini dei corrieri, immagino giusto?
Chiedo questo perche' anch'io vorrei realizzare una funzionalita' simile
In pratica una form che 'sente' la pressione e disegna dove passa il dito
Solo che, usata da dentro un browser (pc server con programma Access con 
Terminal server e client smartphone che accede via browser) lo 
strisciare il dito mi provoca lo spostamento della form e non, come 
vorrei, il disegno della firma
Posso sapere come hai fatto tu?


è incredibile ma ho creato un collegamento sul desktop di windows 10 del file "C:\Windows\System32\osk.exe" e apre la tastiera mentre eseguendo uno dei 2 codici qui sopra indicati access mi risponde
 
errore di runtime 53 
impossibile trovare il file
 
se ci metto calc.exe senza nemmeno il path apre tranquillamente la calcolatrice
 
 
Microsoft!!!! tutto questo è frustrante, non sto chiedendo di far partire uno Space Shuttle verso Marte sto chiedendo l'apertura della tastiera virtuale. 


Strano davvero
Prova ad usare Filemon.exe della suite sysinternals per vedere quale 
file esattamente 'non trova'
Forse e' qualche dipendenza del osk.exe


esatto firma sullo schermo del tablet. (windows)
l'ho implementata per alcuni clienti che si fanno firmare un report di 
fine installazione
vedi qui.
Ovviamente non ha valore legale (credo) ma è solo per farsi 
scarabocchiare una ricevuta
 
http://it.tinypic.com/r/r1x54l/9
 
 
 
per farla uso il controllo
 
Microsoft InkPicture Control
 
https://msdn.microsoft.com/en-us/library/ms839534.aspx
 
 
 
una volta disegnata la firma la salvo in png, la carico dentro il report 
che genero a fine installazione e al cliente arriva subito in mail il 
report con la sua firma
 
 
ho fatto anche la versione equivalente con android studio per 
dispositivi android ma li la cosa è molto più complessa
 
 
ciao
BFS
 
 
 


scusa ma perchè ti ostini a voler aprire osk.exe e non la tastiera di 
windows 10  TabTip.exe che è molto più usabile?
il codice che ti postato funziona, lo uso in oltre 40 tablet windows e 
funziona anche da pc
 
ciao
BFS
 
 
 
 


non mi apre nemmeno quella, ma se da tart esegui digito tabtip la apre
misteri!


non riesco a capire come funzione filemon


https://technet.microsoft.com/it-it/library/bb123828(v=exchg.65).aspx
 
 
Appena lo avvi File Monitor ti mostra tutta l'attivita' del filesystem 
che hai sotto
Puoi filtrare solo alcuni eventi, altrimenti sono troppi e non si 
capissie una mazza
Se guardi la schermata sopra vedrai che ogni riga contiene il file 
acceduto in lettura/scrittura/modifica
Se, dopo il tentativo di avvio del tuo osk.exe, vedi tanti NOT FOUND e' 
altamente probabile che il tuo osk.exe cerchi qualcosa senza trovarlo
Certo che, per uno che sviluppa software, con a disposizione internet, 
dire "non capisco come funziona..." non e' cosa
Gira un pochetto in rete, cerca qualche esempio, datti da fare, e se 
qualcosa non si capisce allora chiedi specificando bene
 
 


allora ti ringrazio però "no è!" non ti ci mettere anche tu mi basta @Alex come dose giornaliera di bacchettonaggine, grazie ancora :D

Ha fatto bene..., anzi è stato buono, caro il mio "Paolo Rossi"... 
;-)
 
@Alex


unitevi insieme e costituite la setta dei bacchettoni! 
motto della setta : ti aiuto ma subito dopo ti bacchetto! 
un pò come dire: ti faccio un regalo ma poi te lo rinfaccio! :D


No è come dire, ti si aiuta, ma se non ci metti del tuo ti si bacchetta... qui i regali non si fanno... e tu sei tenuto a leggere, oppure ritieni di no...?
 
@Alex


Che forum! che solidarietà! che spirito di collaborazione! :D

 Che forum! che solidarietà! che spirito di collaborazione! :D
 
Il Forum tecnico, risolve problemi, non fa miracoli, per il resto puoi scendere al Bar sotto casa... o fare un salto in chiesa.
 
@Alex


Ah ecco, tablet Windows, questo e' il trucco
Non capivo come facevi a far girare Access nativo sui tablet
Ora l'e' chiaro
E su Android con che ambiente usi per la programmazione?
 
 


uso con soddisfazione Android Studio
 
https://developer.android.com/studio/index.html
 
 
ciao
BFS


scusa ma se ti abbiamo postato soluzioni che a noi funzionano senza 
problemi non ti viene il dubbio che sbagli qualcosa tu nel codice o che 
hai qualche problema nel pc?
 
Il codice che ti ho postato io funziona senza problemi su windows 10 
tutte le versioni
 
ciao
BFS
 
 


E coi melafonini come ti regoli?
 


non faccio app per quei ladroni :-)


e chi vuole i miracoli, se io so una cosa e te la dico mica faccio polemica in fondo al messaggio dicendo "però potresti darti da fare e cercare in google e documentarti un pò meglio e...... ti posto la mia soluzione e stop senza voler ne nulla in cambio ne polemizzare altrimenti il forum che senso ha se ogni volta uno deve avere il terrore a chiedere qualcosa per non sentirsi bacchettare ogni volta? in quel caso il forum perde di senso e andrebbe chiuso e ognuno si arrangi in google e sui manuali.


se copio la stringa di codice dal mio modulo e lo incollo qui nel forum
escono strani caratteri in fondo, forse il motivo può essere quello? cosa significa secondo voi? ho un virus? il db è danneggiato? access è da reinstallare?
 
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpszOp As String, ByVal lpszFile As String, ByVal lpszParams As String, ByVal LpszDir As String, ByVal FsShowCmd As Long) As Long 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ó  óˆF  ¨ãb ` Y 
 
 
Sub apritastiera1()
   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
 
                                                                                                                                                                                                                                                                                                                                                                                    P  PˆF  ø/c ` Y 


faccio una precisazione non funziona ne su pc fisso ne su tablet
entrambi hanno windows 10


ma sei sicuro di scrivere bene tutto in una riga il codice?
 
togli " On Error Resume Next"
e scrivi l'errore che ti da quando premi il pulsante
 
BFS
 
 
 
 
 
 
 
 
 
 


innanzi tutto ho scoperto che office xp aveva qualche problema l'ho disistallato e reinstallato poi ho eseguito il codice da te indicato all'inizio di questa discussione come segue:
il messaggio di errore è: errore di compilazione viabile non definita
la variabile non definita è questa --> SW_SHOWMAXIMIZED
 
On Error GoTo Err_Comando390_Click
 
 
   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)
 
Exit_Comando390_Click:
    Exit Sub
 
Err_Comando390_Click:
    MsgBox Err.Description
    Resume Exit_Comando390_Click
 
 

Quella è una Costante se non l'hai definita mi pare evidente... caro il mio "Paolo Rossi".
 
Credo tu non stia usando la dichiarazione obbligatoria delle variabili...
 
@Alex


ho dato per scontato che almeno le costanti per una finestra windows le 
conoscessi...
sostituisi quella costante con il valore che vuoi in base a questa lisat
 
http://www.jasinskionline.com/windowsapi/ref/s/showwindow.html
 
 
 
ciao
BFS
 
 
 
 


un buon insegnante non da nulla per scontato :D

Il giorno lunedì 26 marzo 2018 07:19:15 UTC+2, BFS ha scritto:

funziona era proprio access corrotto per qualche ragione e poi il valore 3 di quella costante


bene
ciao