Frage

Ich habe eine Anwendung, die ein Datum / Zeit aufzeichnet, wenn die Leertaste gedrückt wird Leider ist das Fenster nicht immer Fokus hat, aus verschiedenen Gründen. zB Virenscanner Popup, itunes Update, Windows Update, etc

so was würde ich allerdings eine coole Idee ist es, eine Joystick-Taste zu verwenden, dann unabhängig davon, welches Fenster den Fokus hat, kann ich immer die Taste drücken Ereignis erfassen und notieren Sie das Datum / Zeit gedrückt wurde.

Jetzt hatte ich einen Blick auf ein paar Spiel-Tutorials, aber sie scheinen den Joystick Polling in das Bildschirmaktualisierungs Ereignis gebunden zu haben, denn in einem Spiel, das ich denke, wenn der Computer langsam ist und der Bildschirm oft nicht aktualisiert, mit die Joystick-Taste gedrückt wird sowieso keinen Unterschied machen.

Das ist nicht wirklich mein Bedürfnis passen, so dass ich bin auf der Suche einen Thread ausgeführt wird, den Joystick abfragt jeder so oft

Meine Fragen sind

  1. ist ein Hintergrund-Thread die beste Lösung
  2. Wie oft soll ich den Joystick abfragen
  3. , welche Art von Timer soll ich die Abfragefrequenz zu bestimmen, verwenden.

Ich mag die Antworten zumindest gleichwertig mit einer Tastatur sein. machen müssen auch sicher, dass es nicht automatisch wiederholen, wenn Auslöser gedrückt wird.

irgendein Beispielcode (C #) geschätzt

Dank

alex

War es hilfreich?

Lösung

Ihre beste Wette wäre ein Timer-Objekt auf dem Formular zu erstellen, und den Joystick Scheck an dem Tick-Ereignis binden.

Ich habe auch festgestellt, dass diese alle 100ms einfache Sachen wie Laufen (10-mal pro Sekunde) einen vernachlässigbaren Effekt auf die CPU-Auslastung hat.

Andere Tipps

Wenn Sie für die Abfrage gehen wollen den Joystick, nur weil Sie nicht in der Lage sind, um das Tastaturereignis zu erfassen, ich glaube, Sie müssen Ihre Strategie neu arbeiten.

Auch wenn das Formular nicht über den Fokus gibt es Möglichkeiten, die Sie sicher, dass Sie wissen, von der Tastatur Zustand machen kann.

  1. Sie können eine systemweite Tastatur-Hook einrichten, die in C # getan werden kann, die SetWindowsHookEx API-Aufruf.

Dies ist ein wenig in nicht verwalteten Code und Windows-API einzutauchen, aber ich denke, es ist eine bessere Idee, als Polling ein Joystick führen, dass Sie nicht einen Joystick an Ihrem Computer hinzufügen müssen, nur weil Sie Datetime an der Presse erfassen müssen eine Leertaste.

Machen Sie eine kleine Suche auf Google für Tastatur Haken in C #. Es ist einfacher, als viele Menschen glauben.

Ich glaube nicht, ein Timer-Objekt zu tun dies überhaupt eine gute Idee ist. Weil ich glaube, Sie sagen, Sie es an der Presse eines Schlüssels tun müssen.

Verwenden Sie so etwas wie AHK (Auto HotKey) es ist eine einfache Sprache, die eine EXE-Datei kompiliert werden kann und ist für die Automatisierung der Tastatur und Maus, ich bin nicht 100% sicher, wie gut es mit einem Joystick funktioniert, aber ich bin sicher, es ist möglich, sie es geschafft, ein paar Sachen für die wii-Fernbedienungen zu schreiben.

Auch der IRC-Kanal und Foren immer haben die Menschen bereit zu helfen, wenn nötig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top