Pregunta

Tengo una aplicación que registra una fecha / hora cuando se pulsa la barra espaciadora Por desgracia, la ventana no siempre tiene el foco, por diversas razones. por ejemplo emergente antivirus, actualización de iTunes, actualización de las ventanas, etc.

Así que lo que aunque sería una idea interesante es utilizar un botón de la palanca de mando, a continuación, independientemente de la ventana tiene el foco, siempre puede detectar el evento de pulsar el botón y grabar la fecha / hora que se ha pulsado.

Ahora tenía un vistazo a algunos tutoriales del juego, pero parece que tienen la palanca de mando de votación atado en el caso de actualización de la pantalla, ya que en un juego que supongo que si el equipo es lento y la pantalla no se actualiza con frecuencia, teniendo presionado el botón del joystick va a hacer ninguna diferencia de todos modos.

Eso realmente no satisfacer mis necesidades, por lo que estoy mirando la ejecución de un hilo que va a sondear el joystick de vez en cuando

Mis preguntas son

  1. es un fondo enhebrar la mejor solución
  2. Con qué frecuencia debo sondear el joystick
  3. ¿qué tipo de temporizador debo usar para determinar la frecuencia de sondeo.

Me gustaría que las respuestas sean al menos equivalentes a un teclado. También es necesario asegurarse de que no repetición automática si se mantiene pulsado el gatillo.

cualquier código de ejemplo (C #) apreciado

gracias

Alex

¿Fue útil?

Solución

Su mejor opción sería la creación de un objeto Timer en el formulario, y atar la comprobación de joystick para el evento Tick.

También he encontrado que la ejecución de cosas simples como esto cada 100 ms (10 veces por segundo) tiene un efecto insignificante en el uso de la CPU.

Otros consejos

Si quieres ir para el sondeo de la palanca de mando sólo porque no son capaces de capturar el evento de teclado, creo que es necesario para volver a trabajar su estrategia.

Incluso si el formulario no tiene el foco hay maneras que usted puede asegurarse de que sabe del estado del teclado.

  1. Usted podría crear una amplia gancho de teclado del sistema que se puede hacer en C # utilizando la llamada a la API SetWindowsHookEx.

Se trata de ahondar un poco en código no administrado y la API de Windows, pero yo creo que es una mejor idea que el sondeo no necesitará un joystick causa que añadir un joystick para el equipo simplemente porque es necesario para capturar fecha y hora en la prensa de una barra espaciadora.

Haga una pequeña búsqueda en Google para ganchos de teclado en C #. Es más fácil que muchas personas creen.

No creo que el uso de un objeto de temporizador para hacer esto es una buena idea en absoluto. Porque yo creo que ha dicho que necesita para hacerlo con sólo pulsar una tecla.

AHK (Auto tecla directa) se trata de un lenguaje sencillo que puede ser compilado a un archivo EXE y está diseñado para automatizar el teclado y el ratón, no estoy 100% seguro de lo bien que funciona con un joystick, pero estoy seguro de que es posible que lograron escribir algunas cosas para los mandos de Wii.

También el canal de IRC y foros siempre tienen personas dispuestas a ayudar si es necesario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top