Question

J'ai une application qui enregistre une date / heure où la barre d'espace est pressé malheureusement, la fenêtre n'a pas toujours mise au point, pour diverses raisons. par exemple le virus checker pop-up, mise à jour itunes, windows update, etc

ce que je pensais serais une bonne idée est d'utiliser un bouton de la manette, alors quelle que soit la fenêtre est active, je peux toujours détecter l'événement de presse de bouton et d'enregistrer la date / heure, il a été pressé.

J'ai regardé quelques tutoriels de jeu, mais ils semblent avoir le vote du joystick lié à l'événement de rafraîchissement de l'écran, parce que dans un jeu je suppose que si l'ordinateur est lent et l'écran ne se rafraîchit pas souvent, ayant le bouton du joystick pressé va faire aucune différence de toute façon.

Cela ne convient pas vraiment mon besoin, donc je cherche à l'exécution d'un fil qui interroge le joystick si souvent tous les

Mes questions sont

  1. est un fond enfilez la meilleure solution
  2. Quand dois-je interroger le joystick
  3. quel genre de minuterie dois-je utiliser pour déterminer la fréquence d'interrogation.

Je voudrais que les réponses soient au moins équivalentes à un clavier. ont également besoin pour vous assurer qu'il n'a pas la répétition automatique si le déclencheur est maintenu enfoncé.

any exemple de code (C #) appréciée

Merci

alex

Était-ce utile?

La solution

Votre meilleur pari serait de créer un objet Timer sur votre formulaire, et attacher le contrôle du joystick à l'événement Tick.

Je l'ai aussi trouvé que l'exécution des choses simples comme ça tous les 100ms (10 fois par seconde) a un effet négligeable sur l'utilisation du processeur.

Autres conseils

Si vous voulez aller pour le vote de la manette juste parce que vous n'êtes pas en mesure de capturer l'événement du clavier, je pense que vous avez besoin de retravailler votre stratégie.

Même si votre formulaire ne pas le focus il existe des moyens que vous pouvez vous assurer que vous connaissez l'état du clavier.

  1. Vous pouvez mettre en place un système large crochet du clavier qui peut être fait en C # en utilisant l'appel API SetWindowsHookEx.

Ceci est fouillant un peu dans le code non managé et API Windows, mais je pense qu'il est une meilleure idée que l'interrogation d'une manette de jeu parce que vous ne aurez pas besoin d'ajouter un joystick à votre ordinateur juste parce que vous devez capturer datetime à la presse une barre d'espace.

Faites une petite recherche sur Google pour des crochets de clavier en C #. Il est plus facile que beaucoup de gens croient.

Je ne pense pas à l'aide d'un objet de la minuterie pour ce faire est une bonne idée du tout. Parce que je crois que vous avez dit que vous devez le faire à la pression d'une touche.

Utilisez quelque chose comme AHK (Auto HotKey) il est un langage simple qui peut être compilé à un EXE et est conçu pour automatiser le clavier et la souris, je ne suis pas 100% sûr de savoir comment il fonctionne avec une manette de jeu, mais je suis sûr qu'il est possible, ils ont réussi à écrire des trucs pour les Wiimotes.

De plus, le canal IRC et les forums ont toujours des gens prêts à aider si nécessaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top