Simulando entrada na tela de logon do Windows, usando um driver
Estou escrevendo uma ferramenta de área de trabalho remota de código aberto, semelhante ao VNC e TeamViewer. Percebi que o TeamViewer continua capturando a tela na tela Switch Users ou Workstation Locked - e permite que o usuário remoto digite a senha e desbloqueie a estação de trabalho. Eu quero fazer o mesmo
Eu li
Atualizado: Interagindo com o usuário na tela de logon do Windows
https: //stackoverflow.com/questions/9485530/capturing-image-during-windows-logon-invalid-passwor
Adicionando o botão de comando à tela de Logon do Windows
hook uma tecla de atalho na tela de logon do Windows
Removendo a tela de Logon do Windows através de um serviço
Como pegar uma chave na tela de logon do Windows
Exibindo a janela na tela de logon usando c # no Windows XP
Dessas postagens, concluí que a simulação de entrada em uma sessão isolada definitivamente não é uma simples chamada para SendInput (). Mas é possível usar um driver (acredito que seja especificamente um driver de filtro do teclado, mas não tenho certeza)? Nesse caso, estou pensando em escrever, em C #, um serviço (para que seja executado fora da sessão do usuário) que interaja com o driver de interceptação para simular pressionamentos de tecla.
Em resposta a: "por que você simplesmente não tenta?", Ainda não existe um wrapper .NET para a Interception para eu testar um serviço desse tipo; portanto, se o consenso geral concluir que isso não é possível, Não quero perder tempo escrevendo esse invólucro do .NET.
Eu encontreim driver de teclado chamado Interception (que será lançado de código aberto no futur. Você pode diretamente encontre a fonte aqui (a fonte é apenas o wrapper da API de comunicação C que envolve o driver do kernel real).
Outra pergunta que tenho ... Estou confuso sobre quais arquivos compõem um driver. Sua biblioteca DLL de interceptação programada em C é compilada em uma DLL. Mas os drivers de alguma extensão .sys não são - como você compila essa DLL de interceptação em um driver real - e como instalá-la?
EDITAR Existe um wrapper .NET. Modifiquei o aplicativo de console de amostra para digitar minha senha inteira ao pressionar a tecla 'x' e funcionou com êxito - não apenas na tela bloqueada da estação de trabalho, mas também na tela de logon do Windows. Então funciona.
Editar biblioteca do wrapper C # para esse driver de teclado está aqui.