Aprire tastiera virtuale da codice

di il
2 risposte

Aprire tastiera virtuale da codice

Buon giorno,

non riesco ad aprire da codice la tastiera virtuale di Windows.

Questo è il codice inserito (ho provato anche a mettere il percorso completo, ma senza esito)

Se sostituisco osk con notepad funziona tutto.

L'errore indica semplicemente che non è stato trovato il file (che ovviamente esiste e funziona se lanciato da Esegui di Windows).

        Try
            System.Diagnostics.Process.Start("osk.exe")
            'System.Diagnostics.Process.Start("%windir%\system32\osk.exe")
        Catch ex As Exception
            MsgBox("Errore : " & ex.ToString, vbCritical, "ERRORE")
        End Try

2 Risposte

  • Re: Aprire tastiera virtuale da codice

    Il problema deriva dalla redirezione Wow64. Puoi rimediare disabilitandola temporaneamente

    Aggiungi alla classe

       Private Declare Function Wow64DisableWow64FsRedirection Lib "kernel32" (ByRef oldvalue As IntPtr) As Boolean
       Private Declare Function Wow64RevertWow64FsRedirection Lib "kernel32" (ByVal oldvalue As IntPtr) As Boolean

    e poi il codice da richiamare (essenziale, a cui dovrai aggiungere eventuali controlli d'errore) è

           Dim ptr As IntPtr
           Dim res As Boolean
           res = Wow64DisableWow64FsRedirection(ptr)
           System.Diagnostics.Process.Start("osk.exe")
           If (res) Then
               res = Wow64RevertWow64FsRedirection(ptr)
           End If
  • Re: Aprire tastiera virtuale da codice

    Perfetto.

    Grazie

Devi accedere o registrarti per scrivere nel forum
2 risposte