[질문] Shift + -> 와 같은 조합키 입력받기

jjasook의 이미지

다름이 아니라, Curses를 사용해서 프로그램을 할라고 합니다.

shift키를 누른 상태에서 화살표키입력이 들어오면,
어떠한 루틴을 처리하려고 하는데,

shift+->와 같은
조합 키 입력을 어떻게 받아야 할지를 모르겠습니다.

curses자체에서는 제공해 주지 않는것 같은데,
IO Control을 사용하게 되면, 가능하다는 말을 얼핏 들었습니다.

아시는분....알려주세요

서지훈의 이미지

예날에 이러한 입력은 scan code로 정의 되어 있었든 것으로 기억이 납니다.
한번 scan code 입력에 대해서 찾아 보시면은 답이 나오지 않을까 생각을합니다.

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

gbkwon의 이미지

jjasook wrote:
다름이 아니라, Curses를 사용해서 프로그램을 할라고 합니다.

shift키를 누른 상태에서 화살표키입력이 들어오면,
어떠한 루틴을 처리하려고 하는데,

shift+->와 같은
조합 키 입력을 어떻게 받아야 할지를 모르겠습니다.

curses자체에서는 제공해 주지 않는것 같은데,
IO Control을 사용하게 되면, 가능하다는 말을 얼핏 들었습니다.

아시는분....알려주세요

KEY_SAVE        Save key
KEY_SBEG        Shifted beginning key
KEY_SCANCEL     Shifted cancel key
KEY_SCOMMAND    Shifted command key
KEY_SCOPY       Shifted copy key
KEY_SCREATE     Shifted create key
KEY_SDC         Shifted delete char key
KEY_SDL         Shifted delete line key
KEY_SELECT      Select key
KEY_SEND        Shifted end key
KEY_SEOL        Shifted clear line key
KEY_SEXIT       Shifted exit key
KEY_SFIND       Shifted find key
KEY_SHELP       Shifted help key
KEY_SHOME       Shifted home key
KEY_SIC         Shifted input key
KEY_SLEFT       Shifted left arrow key
KEY_SMESSAGE    Shifted message key
KEY_SMOVE       Shifted move key
KEY_SNEXT       Shifted next key
KEY_SOPTIONS    Shifted options key
KEY_SPREVIOUS   Shifted prev key
KEY_SPRINT      Shifted print key
KEY_SREDO       Shifted redo key
KEY_SREPLACE    Shifted replace key
KEY_SRIGHT      Shifted right arrow
KEY_SRSUME      Shifted resume key
KEY_SSAVE       Shifted save key
KEY_SSUSPEND    Shifted suspend key
KEY_SUNDO       Shifted undo key
KEY_SUSPEND     Suspend key
KEY_UNDO        Undo key

man getch 하니 이런게 나오더군요... 찾으시는게 이거 맞는지 모르겠습니다..

참고 하세요..

Necromancer의 이미지

각 키별로 2가지 스캔코드가 발생하는걸로 압니다.
하나는 키가 눌려졌을 때 발생하는 스캔코드고,
다른 하나는 키가 떨어졌을 때 발생합니다.
조합키는 이걸 이용해서 구분합니다.

터미널에서 키 입력은 키가 눌려졌을 때는 가만 있다가
키가 떨어졌을 그때에 가서 키가 입력되는 방식으로 되어 있고요.
(우리가 워드치거나 할 때의 키 입력이 다 이렇죠.)

만일 키를 누른 상태에서 떨어뜨리지 않는다면... 일정 시간 후에
키가 눌려졌다는 스캔코드가 계속 오죠. 키 떨어졌다는 스캔코드는
오지 않구요... 단, 예외적으로 키 누른 상태에서 다른 키가 한번 이상 눌려졌다면
전에 눌려졌던 키의 스캔코드는 키가 떨어지지 않는 이상 다시 오지 않습니다.

Written By the Black Knight of Destruction

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.