Wie frage ich einen USB Port ab? Will Tastendruck eines Presenters verwenden.

  • Hallo zusammen,

    ich möchte einen USB Presenter von Kensington dazu nutzen, in einem Programm eine Funktion auszulösen. Drei verschiedene Tasten können gedrückt werden. Wie kann ich diese abfragen? Bei Druck auf Taste 1 soll der Wert 1 an das Programm übergeben werden, bei Taste 2 der Wert 2 und bei Taste 3 der Wert 3.

    Danke für Ideen!

  • Im Gerätemanager taucht er auf unter Eingabegeräte (HID) und hat die Adresse HID\VID_047D&PID_2012&REV_0009&MI_01. Das ist dann wahrscheinlich keine Maus?
    Gibt es denn Software, mit der man eine andere Software als Powerpoint dazu bringen kann, auf Presenter zu reagieren?

  • Hier das Skript was er meint, hab schnell irgendwas gecodet:

    Spoiler anzeigen
    [autoit]


    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Starte das Skript, wenn der Presenter angeschlossen ist
    ; Wenn das Skript läuft, dann klicke den Button am Presenter

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $aKeys[120][2] = [["01", "Left mouse button"], ["02", "Right mouse button"], ["04", "Middle mouse button (three-button mouse)"], ["05", "X1 mouse button"], ["06", "X2 mouse button"], ["08", "BACKSPACE key"], ["09", "TAB key"], ["0C", "CLEAR key"], ["0D", "ENTER key"], ["10", "SHIFT key"], ["11", "CTRL key"], ["12", "ALT key"], ["13", "PAUSE key"], ["14", "CAPS LOCK key"], ["1B", "ESC key"], ["20", "SPACEBAR"], ["21", "PAGE UP key"], ["22", "PAGE DOWN key"], ["23", "END key"], ["24", "HOME key"], ["25", "LEFT ARROW key"], ["26", "UP ARROW key"], ["27", "RIGHT ARROW key"], ["28", "DOWN ARROW key"], ["29", "SELECT key"], ["2A", "PRINT key"], ["2B", "EXECUTE key"], ["2C", "PRINT SCREEN key"], ["2D", "INS key"], ["2E", "DEL key"], ["30", "0 key"], ["31", "1 key"], ["32", "2 key"], ["33", "3 key"], ["34", "4 key"], ["35", "5 key"], ["36", "6 key"], ["37", "7 key"], ["38", "8 key"], ["39", "9 key"], ["41", "A key"], ["42", "B key"], ["43", "C key"], ["44", "D key"], ["45", "E key"], ["46", "F key"], ["47", "G key"], ["48", "H key"], ["49", "I key"], ["4A", "J key"], ["4B", "K key"], ["4C", "L key"], ["4D", "M key"], ["4E", "N key"], ["4F", "O key"], ["50", "P key"], ["51", "Q key"], ["52", "R key"], ["53", "S key"], ["54", "T key"], ["55", "U key"], ["56", "V key"], ["57", "W key"], ["58", "X key"], ["59", "Y key"], ["5A", "Z key"], ["5B", "Left Windows key"], ["5C", "Right Windows key"], ["60", "Numeric keypad 0 key"], ["61", "Numeric keypad 1 key"], ["62", "Numeric keypad 2 key"], ["63", "Numeric keypad 3 key"], ["64", "Numeric keypad 4 key"], ["65", "Numeric keypad 5 key"], ["66", "Numeric keypad 6 key"], ["67", "Numeric keypad 7 key"], ["68", "Numeric keypad 8 key"], ["69", "Numeric keypad 9 key"], ["6A", "Multiply key"], ["6B", "Add key"], ["6C", "Separator key"], ["6D", "Subtract key"], ["6E", "Decimal key"], ["6F", "Divide key"], ["70", "F1 key"], ["71", "F2 key"], ["72", "F3 key"], ["73", "F4 key"], ["74", "F5 key"], ["75", "F6 key"], ["76", "F7 key"], ["77", "F8 key"], ["78", "F9 key"], ["79", "F10 key"], ["7A", "F11 key"], ["7B", "F12 key"], ["7C", "F13 key"], ["7D", "F14 key"], ["7E", "F15 key"], ["7F", "F16 key"], ["90", "NUM LOCK key"], ["91", "SCROLL LOCK key"], ["A0", "Left SHIFT key"], ["A1", "Right SHIFT key"], ["A2", "Left CONTROL key"], ["A3", "Right CONTROL key"], ["A4", "Left MENU key"], ["A5", "Right MENU key"], ["BA", ";"], ["BB", "="], ["BC", ","], ["BD", "-"], ["BE", "."], ["BF", "/"], ["C0", "`"], ["DB", "["], ["DC", "\"], ["DD", "]"]]
    $IsPressed = ""

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Do
    For $i = 0 To 119
    If _IsPressed($aKeys[$i][0]) Then
    $IsPressed = $aKeys[$i][1]
    EndIf
    Next
    Until $IsPressed <> ""
    MsgBox(0, "", $IsPressed)

    [/autoit]

    Mir ist aufgefallen, dass es sehr nahe am Keylogger ist nur dass der nicht loggt:D Aber das ist nicht meine Absicht und ich denke nicht, dass diese Problemlösung daher ein weiteres Problem hervorruft.

  • Danke für die Antworten. Mittlerweile ist klar, daß im Normalfall die untere Taste ein "b" aussendet. Bei manchen Rechnern wird aber die Zahl "1" erkannt. Bei unserem Programm wird eine Funktion durch "b" ausgelöst; wenn "1" oder was anderes ankommt, reagiert das Programm natürlich nicht.

    Ich habe Sharpkey gefunden; damit könnte ich die 1 zu einem b umbiegen. Das Dumme ist, daß das auch die normale Tastatur betrifft und das will ich natürlich nicht. Gibt es eine Möglichkeit, die Abfrage, die oben Phil-IT gemacht hat, so zu erweitern, daß damit nur der Presenter abgefragt wird und nicht auf Tastendrücke der Tastatur reagiert?

    Dann könnte ich was schnitzen, das anschließend den Tastendruck in unserem Programm simuliert.

  • rein theoretisch könnten wir programmieren, dass immer wenn du 2 mal die 1 oder halt den button hintereinander drückst dann das programm reagiert und an sonsten es als normaler tastendruck angesehen wird..

    Philipp