2013-02-07 19 views
5

Ho bisogno di chiudere la tastiera tabtip da un programma in Windows 8 (desktop winform .NET). Ho trovato che aprirlo quando necessario, eseguire TabTip.exe per visualizzare la tastiera Touch di Windows 8, ma non riesco a chiuderla quando ho bisogno! Ho provato ad uccidere il processo con process.kill ma non funziona, qualcuno ha un'idea su come farlo?Apri e chiudi Windows 8 touch tastiera tabtip sotto desktop

Saluti Jean-Claude

+0

Lo hai scoperto? Ho lo stesso problema. –

+0

Niente trovato, mi dispiace. Sto sviluppando una tastiera WinForm simile a quella di Windows 8, ho usato l'esempio di tastiera Microsoft. – jcq

+0

L'ho capito e ho risposto alla mia domanda qui http://stackoverflow.com/questions/15148740/how-to-close-textinputpanel –

risposta

0

provare il sotto- Sostituire Osk con TabTip

Public Class Form1

Private oskProcess As Process 

Private Sub openButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles openButton.Click 
    If Me.oskProcess Is Nothing OrElse Me.oskProcess.HasExited Then 
     If Me.oskProcess IsNot Nothing AndAlso Me.oskProcess.HasExited Then 
      Me.oskProcess.Close() 
     End If 

     Me.oskProcess = Process.Start("osk") 
    End If 
End Sub 

Private Sub closeButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles closeButton.Click 
    If Me.oskProcess IsNot Nothing Then 
     If Not Me.oskProcess.HasExited Then 
      'CloseMainWindow would generally be preferred but the OSK doesn't respond. 
      Me.oskProcess.Kill() 
     End If 

     Me.oskProcess.Close() 
     Me.oskProcess = Nothing 
    End If 
End Sub 

End Class

3

apre Tabtip.exe, poi genera due processi prima di chiudere di nuovo. Quindi il comando process.kill non funziona perché il processo di origine è già chiuso.

Questo esamina tutti i processi aperti e chiude tutto ciò che è relativo al tabtip.

For Each pkiller As Process In Process.GetProcesses 
     If String.Compare(pkiller.ProcessName, "tabtip", True) = 0 Then 
      pkiller.Kill() 
     End If 
Next 
Problemi correlati