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

https: //stackoverflow.com/questions/7183241/launch-windows-on-screen-keyboard-at-logon-screen-on-win

Driver para Simular Keypress

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.

questionAnswers(4)

yourAnswerToTheQuestion