Открытая и близкая сенсорная клавиатура Windows 8 tabtip под рабочим столом

Я должен закрыть tabtip клавиатуру из программы под Windows 8 (настольная winform.NET). Я нашел, чтобы открыть его, когда потребность, управляйте TabTip.exe, чтобы показать Windows 8 Touch keyboard, но я не могу закрыть его, когда мне нужно! Я пытался убить процесс process.kill, но это не работает, у кого-то есть идея, как сделать это?

Отношения Jean-claude

5
Вы узнавали? У меня есть та же самая проблема.
добавлено автор Steve Chadbourne, источник
Я понял его и ответил на мой собственный вопрос здесь stackoverflow.com/questions/15148740/…
добавлено автор Steve Chadbourne, источник
Ничто найденное, жаль. I' m развитие клавиатуры WinForm, которая подобна тому в Windows 8, я использовал образец клавиатуры Microsoft.
добавлено автор jcq, источник

3 ответы

Tabtip.exe открывается, затем мечет икру два, обрабатывают прежде, чем закрыться снова. Таким образом, команда process.kill не работает, потому что процесс возникновения уже закрывается.

Это просматривает все открытые процессы и закрывает что-либо связанный tabtip.

For Each pkiller As Process In Process.GetProcesses
      If String.Compare(pkiller.ProcessName, "tabtip", True) = 0 Then
          pkiller.Kill()
      End If
Next
3
добавлено

I discovered an undocumented COM interface for controlling the on-screen keyboard. Check my other answer for the details https://stackoverflow.com/a/40921638/332528

0
добавлено

Попробуйте ниже - заменяют Osk TabTip

Общественный класс 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

Класс конца

0
добавлено
Про Windows
Про Windows
941 участник(ов)

Microsoft Windows и всё, что с этим связано. Список интересных групп и каналов: https://github.com/goq/telegram-list

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot