Gostaríamos de tornar uma peça de exposição interativa à prova de falhas, exigindo o mínimo de presença possível da equipe ao recuperá-la de qualquer coisa que alguém a tenha feito fazer.
Ele tem uma entrada de texto e, em seguida, produz algo. Achei que o mais fácil seria não dar a eles um mouse, apenas um teclado que está sempre focado no campo de entrada único. E então desabilite todos os atalhos e teclas especiais possíveis, ficando apenas com letras, espaço, retrocesso e enter.
Somos flexíveis em termos de sistema operacional e se a interface do usuário é uma página HTML ou um aplicativo de desktop. Mas obviamente janelas (ou uma distro linux padrão) e uma página HTML seriam melhores. Podemos precisar de drivers de GPU para o back-end.
Tentei pesquisar no Google, mas talvez não tenha tropeçado nas palavras-chave certas, porque não somos os primeiros a ter esse problema. Mas, novamente, a maioria das exposições interativas são muito mal protegidas.
Remova todas as tampas de teclas 'ilegais' e monte o teclado atrás de um recorte para que apenas as teclas permitidas sejam expostas.
Nenhuma tecla 'ilegal' disponível para pressionar, não há necessidade de fazer nada de especial no sistema operacional. Você mantém seu teclado de supervisor nos bastidores.
Eu costumava trabalhar com displays 'multimídia' para varejo. No varejo, você descobre rapidamente que a única maneira de impedir que o público estrague as coisas é remover literalmente todos os acessos que podem atrapalhar. Costumávamos montar teclados assim em caixas de aço feitas sob medida, parafusadas. Qualquer coisa menos e alguém conseguiria quebrá-lo ou roubá-lo. Não compre um teclado frágil, ou um magro, as pessoas podem facilmente tirar as tampas das teclas… ou o farão.
Observe que entre as coisas que as pessoas gostam de fazer, além de roubar todas as teclas, está - excluir seu aplicativo e/ou qualquer outra coisa que elas possam acessar. Altere a imagem da área de trabalho para algo muito, muito inapropriado... ou meu favorito... defina uma senha de supervisor, bloqueando você de sua própria máquina.
Curiosamente, o mais engraçado [e muito caro para a empresa envolvida porque eles não nos deixavam entrar VPN no sistema, então sempre tinha que ser uma visita ao local, pela qual cobramos uma fortuna] era que os clientes não podiam t quebrá-lo, mas a equipe poderia. A equipe gostaria de saber por que não tem acesso à Internet. Eles identificariam "inteligentemente" que o DHCP estava desativado e o habilitariam. Isso quebraria toda a estrutura, então eles tinham internet [o que não deveria], mas seu aplicativo não funcionava, pois estava codificado em seu próprio servidor interno, a 10 metros de distância no escritório. Ah, como eu ria todas as vezes... & peguei o dinheiro para 'consertar', o que levou, é claro, cerca de 30 segundos.
O que você está procurando é chamado de "quiosque".
Dependendo do seu orçamento, você pode comprar ou alugar uma máquina dedicada. Eles são chamados de "quiosque interativo" ou "computador de quiosque". Eles vêm com uma tela sensível ao toque bastante segura ou um teclado embutido robusto. Muitas vezes eles têm um trackball.
Se você considera muito caro e quer gastar tempo, você deve usar um sistema operacional dedicado como o Porteus Kiosk que permite desabilitar tudo o que você deseja desabilitar e restaura o computador para a configuração inicial a cada reinicialização, mesmo que alguém consegue estragar tudo. Mas você mesmo teria que gerenciar a segurança do hardware — tranque a torre em algum gabinete, evite vandalismo conforme necessário e assim por diante.
Desculpe, não acho que nenhum sistema operacional padrão seja adequado para essa função. Mas o aplicativo em si certamente pode ser um aplicativo da web (ou seja, uma página HMTL) e essa é provavelmente a opção mais fácil e mais suportada que seria suportada por quase qualquer solução de quiosque.
Se couber no seu orçamento, você também pode considerar usar uma tela sensível ao toque e desenvolver um teclado JS simples
Eu fiz algo assim para usar um teclado numérico USB como uma entrada de controle personalizada para um software.
Basicamente, em vez de lidar com as proteções do sistema operacional ou outras opções, abra o teclado "seguro" diretamente com
libusb
.Isso lhe dá um teclado completo com uma interface (relativamente) simples, que literalmente não pode interagir com nada além de seu aplicativo específico. Quando fiz isso, mascarei o teclado específico dos drivers HID da plataforma da VID, para que ele não aparecesse como um teclado normal se meu software não estivesse em execução.
Você pode configurar o Windows e/ou Linux para usar libusb para tuplas USB VID/PID específicas.
Acessar o sistema no modo não quiosque é tão simples quanto usar um teclado de um fabricante diferente ou com um número de peça diferente.
Você pode usar a API DRM do Linux para desenhar diretamente na tela usando, por exemplo
libcairo
(que tem suporte para renderização de fontes), interceptar eventos de entrada comlibinput
e desabilitar todos os vttys . Provavelmente um exagero, mas lhe dará controle total sobre sua pilha de software, evitando o abuso de atalhos de teclado, visitas a sites maliciosos, abertura de aplicativos, etc. outdoors usam esse método, entre outros.Este pode ser um bom caso de uso para uma das versões incorporadas do Windows.
O Windows 10 IoT Core é uma versão simplificada e minimalista do Windows que permite que apenas um único programa UWP predefinido seja executado em primeiro plano. Não há barra de tarefas ou área de trabalho, então nem é óbvio que você está executando o Windows. Você projetaria seu programa para rodar em tela cheia e o sistema inicializaria diretamente nele na inicialização.
Os vários tipos de IoT do Windows também têm vários outros recursos que podem ser úteis para o seu caso de uso (alguns recursos estão disponíveis apenas em determinadas edições):
Como outras pessoas mencionaram, um "modo Quiosque" será útil. Com esta resposta, gostaria de recomendar um produto específico.
Encontre aqui o Safe Exam Browser: https://safeexambrowser.org/download_de.html
Com este navegador, você pode ativar e desativar facilmente o modo quiosque e configurá-lo.
Há uma aliança de várias universidades e outras instituições por trás do desenvolvimento. Eu usei este navegador enquanto trabalhava em uma universidade entre didática e mídia há alguns anos.
O navegador é considerado seguro, porém em casos raros alguém encontra uma falha de segurança, como aconteceu recentemente:
https://www.zentralplus.ch/beruf-bildung/15-jaehriger-zuger-erhackt-sicherheitsleck-bei-pruefungsplattform-2388863/
Espero que este navegador leve seu projeto adiante.