Frage

Ich bin derzeit mit diesem Code zu greifen Schlüssel Takter, aber ich bin fehle z Umschalttaste / Alt Tasten wie Strg + Umschalttaste + S , Strg + Umschalttaste + ? , Alt + S , etc.

  require 'curses'

  Curses.noecho
  Curses.raw
  Curses.stdscr.keypad(true)
  Curse.nonl

  count = 0
  loop do
    count = (count + 1) % 20
    key = Curses.getch
    break if key == ?\C-c
    Curses.setpos(count,0)
    Curses.addstr("#{key.inspect}     ");
  end

Gibt es eine Möglichkeit, sie alle zu erfassen?

Auch: Wie kann ich unterscheiden Strg + J / Strg + M von Strg + Enter / Enter , die den gleichen Schlüssel-Codes (10 / 13) geben?

War es hilfreich?

Lösung

auch: Wie kann ctrl + j / Strg + m von ctr unterscheiden + Enter / Eingabe, die geben den gleichen Schlüssel-Codes (10/13)

Lange Rede kurzer Sinn - kann man nicht. Das Terminal wird ergeben fast sicher das gleiche Bytes für jeden. Bitte lesen Sie

http://www.leonerd.org.uk/hacks/fixterms/

sagte, dass, wenn Sie das Gefühl besonders mutig, können Sie meinen libtermkey versuchen

http://www.leonerd.org.uk/code/libtermkey/

, die zumindest richtig Parse Dinge wie Ctrl-arrow wird. Es ist (noch) nicht haben eine Ruby-Bindung, aber die Anwesenheit von beiden Perl und Python diejenigen würde vorschlagen, es ganz einfach, einen zu schreiben sein sollte.

Schließlich, wenn Sie das Gefühl sogar tapferer Sie das Terminal ich laufen kann schrieb, pangoterm, die generische Möglichkeiten hat keine beliebig geändert Unicode Schlüssel zu kodieren, so kann es bei gedrückter Strg-m unterscheiden von Enter, etc ...

https://launchpad.net/pangoterm

Doch außerhalb dieser, die Antwort bleibt „Sie können nicht“.

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