Detectar se o teclado na tela está aberto (TabTip.exe)

Estou trabalhando em um aplicativo WPF / C # para preencher formulários. Estou tentando encontrar uma maneira de determinar se o teclado TapTip (TabTip.exe / teclado semelhante ao metro para a área de trabalho do Windows 8) está minimizado / não é visível no Windows 8.

Consegui detectar se o teclado osk (teclado na tela de acessibilidade osk.exe / windows) está minimizado, mas o mesmo processo parece não funcionar com o teclado TabTip.

Para detectar se o teclado está minimizado I:
1. Encontre o processo do teclado
2. Obtenha o MainWindowHandle
3. Use a propriedade showCmd do WINDOWPLACEMENT (encontrada usando MainWindowHandle)
4. Use o valor showCmd para determinar se a janela é minimizada

Os problemas que encontrei são:
- o processo TabTip possui um MainWindowHandle de 0 (portanto, não posso usá-lo para encontrar as informações de WINDOWPLACEMENT)
- os valores para WINDOWPLACEMENT.showCmd são os mesmos quando TabTip é aberto e minimizado

Para encontrar o identificador da janela do TabTip, usei o ENUMWINDOWS para obter todos os identificadores da janela, GETWINDOWTHREADPROCESSID para obter os IDs do processo e, em seguida, comparei os IDs ao ID do processo do TabTip.

Qualquer ajuda com isso seria apreciada. Este também é o meu primeiro post. Eu acho que fiz isso certo, mas se não, por favor, deixe-me saber como corrigi-lo.

questionAnswers(3)

yourAnswerToTheQuestion