Quero começar a desenvolver para o Kinect, mas o tema mais difícil - como enviar entrada de teclado e mouse para qualquer aplicativo. Na pergunta anterior, recebi um conselho para desenvolver meu próprio driver para esses dispositivos, mas isso levará um tempo.
Eu imagino um aplicativo como um portão, que pode converter o SendMessage em um aplicativo de entrada ou driver amplo do sistema com API para enviar essas entradas. Então, eu me pergunto, existem drivers ou simuladores que podem interagir com C # ou C ++?
Edição pequena: SendMessage, PostMessage, keybd_event funcionará apenas no aplicativo Windows com loop de mensagens comuns. Então, eu preciso de um aplicativo de driver que funcione em nível baixo, do kernel.
Respostas:
Para um aplicativo C #:
Para mover o mouse, a classe Cursor é nossa amiga, pois Cursor.Position pode ser usado para mover o mouse.
Para simular o pressionamento de teclas, a classe Sendkeys é sua amiga, com SendKeys.Send () sendo usado para simular um pressionamento de teclado
Para clicar com o mouse, não conheço nenhum bom pacote, mas esse código deve funcionar:
(Apenas substitua xey pela posição atual do mouse, talvez usando a classe Cursor novamente)
Como alternativa, você pode usar algo como a Biblioteca Global de Mouse e Teclado do CodeProject para uma interface simples e limpa para todo o processo
fonte
O que você precisa é criar um driver de sistema para um dispositivo de interface humana, HID. O conselho anterior para criar um driver está correto porque, como você notou, você não pode simplesmente incluir eventos em sistemas de nível superior e obter cobertura universal.
Você pode começar aqui: digite a descrição do link aqui e continue procurando no MSDN amostras de drivers para basear seu trabalho.
fonte
Bem, a melhor maneira de fazer isso é criar seu próprio driver de teclado / mouse usando o WDK. É uma solução precisa e de boa aparência, mas levará muito tempo se você for iniciante em programação.
Outra solução é usar o GlovePIE . Você pode escrever seu próprio script e usá-lo. Portanto, você precisará enviar uma mensagem com seu aplicativo para o GlovePIE e ele gerará entrada no nível do Kernel, para que isso funcione nos jogos DirectX e nos aplicativos de loop de mensagens.
Bem, eu realmente quero algo parecido com isto, mas com a possibilidade de executar como processo em segundo plano (o GlovePIE começa com o modo de janela e você pode ativá-lo) ou talvez como biblioteca. Se eu encontrar outra coisa, atualizarei a resposta.
fonte