Questão No Windows 10, por que o teclado interno não aparece para um Visual Basic InputBox?


Instalei um aplicativo de desktop de 32 bits no Windows 10 Pro x64 pela primeira vez. Anteriormente, ele foi usado com sucesso no Windows 7.

É um PC com um monitor touchscreen externo usado em um modo quiosque, de modo que a única coisa disponível para o usuário é o próprio programa. Sem um teclado físico ou fechando o programa, eles não podem ver a barra de tarefas ou a bandeja do sistema.

Em Configurações / Dispositivos / Digitação, selecionei "Mostrar o teclado de toque ou o painel de texto manuscrito quando não estiver no modo tablet e não houver nenhum teclado conectado".

O aplicativo tem apenas alguns lugares que permitem ao usuário digitar. O teclado aparece bem no login do Windows e nas telas que usam um TextBox. Mas há alguns lugares que usam uma caixa de diálogo InputBox genérica e o teclado não aparece.

Eu tentei o "Adicionar o layout de teclado padrão como uma opção de teclado de toque", que não parece ter um efeito.

Configurar o OSK para iniciar automaticamente, que é o que eu costumava fazer no Windows 7, é um pouco complicado, porque você não pode minimizá-lo sem perdê-lo para a bandeja do sistema oculta e é superdimensionado em comparação com o outro teclado.

Existe outra configuração que preciso examinar para que funcione?

Atualizar: A razão pela qual o TextBox abre o teclado é que é atribuído um caractere de senha. Um TextBox normal também não traz o teclado para frente.


0


origem


Acho que a opção "Mostrar o teclado de toque ..." faz com que o ícone do teclado apareça na bandeja do sistema, portanto, se estiver oculto, isso não fará diferença alguma. Difícil dizer a partir do seu post, mas se você tiver acesso ao código-fonte, você poderia escrever colocar no manipulador de eventos que inicia o executável da tela de toque toda vez que uma caixa de entrada é clicada. Eu fiz isso como uma solução antes. - BrianC
executar o dispositivo no modo tablet o tempo todo, aqui o teclado deve sempre aparecer - magicandre1981
@ magicandre1981 Mesma experiência no modo tablet. - Rich Shealer
@BrianC Eu tenho acesso, mas eu estava tentando evitar mudar a fonte. Eu não acho que tenho escolha. - Rich Shealer
você pode fornecer (github) um pequeno aplicativo de demonstração (2 entradas, 1 foi mostrado no OSK e 1 se não estiver), você viu o problema? - magicandre1981


Respostas:


Trabalhando com o programa e fazendo mais pesquisas, posso resumir onde o teclado aparece automaticamente com um programa do WinForm.

  • TextBox com o PasswordChar conjunto de propriedades.
  • UMA ComboBox com o DropSownStyle propriedade definida como DropDown.

Eu achei que não havia maneira de obter o InputBox para usar o toque. Acabei de fazer um formulário personalizado com um TextBox e anexado algumas rotinas personalizadas para os eventos Enter e Leave do TextBox.

Como este não é o site de programação, vou mantê-lo curto.

Eu usei o TabletDeviceCollection para ver se o computador tinha um TabletDevice com um Type do TabletDeviceType.Touch.

Se isso acontecesse, eu lancei o teclado assim:

Process.Start("C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe")

Então, para fechar, liguei para o não gerenciado Win32 função FindWindow("IPTIP_Main_Window", "") para obter uma alça e, em seguida, chamou outro WIn32 para enviar uma mensagem. SendMessage(handle, WM_SYSCOMMAND, SC_CLOSE, 0)

Para mais informações, pesquise essas frases.


1