2009-09-11 18 views
16

Tôi muốn viết một chương trình C đơn giản sẽ thực hiện các hành động khác nhau dựa trên cả hai sự kiện "khóa xuống" và "khóa". Chương trình này sẽ được chạy từ bên trong rxvt.Nhận các sự kiện phát hành phím và bấm quan trọng trong các ứng dụng đầu cuối Linux?

Tôi nên sử dụng thư viện hoặc cơ chế nào để truy cập cả hai lần nhấn phím và bản phát hành chính? Có đúng là việc đọc /dev/tty sẽ chỉ cung cấp các bản phát hành chính không? Điều này cũng đúng đối với termcap, terminfo, ncurses và slang? Có cách nào để đạt được điều này từ bên trong một ứng dụng đầu cuối không?

Trả lời

3

Tôi không nghĩ rằng ncurses sẽ hoạt động. Liên kết Basilevs cung cấp các cuộc đàm phán về phím "mũi tên lên" và phím "mũi tên xuống", không phải là một báo chí quan trọng và phát hành.

4

Điều này sẽ không hoạt động trong trường hợp chung. Các thiết bị đầu cuối ANSI (từ đó tất cả các trình mô phỏng đi xuống) chỉ biểu thị các sự kiện "báo chí" chính. Họ không ghi lại các sự kiện một cách độc lập.

Nếu bạn cần truy cập sự kiện bàn phím mức thấp, môi trường thích hợp thực sự là một chương trình GUI. Ngay cả một ứng dụng web sẽ có quyền truy cập sạch hơn vào các sự kiện quan trọng hơn một thiết bị đầu cuối.

7

Các liên kết sau đây có thể có một số hỗ trợ trong việc sử dụng chế độ thô trên bàn phím sẽ cho phép bạn truy cập vào các sự kiện bàn phím thay vì chỉ các bản phát hành chính.

  1. Linux này Journal article
  2. này article trên SourceForge
  3. HOWTO này khi nó mọi việc suôn sẻ xấu

Nguyên chế độ không có những bất lợi mà bạn phải làm chuyển đổi riêng của bạn từ quét mã vào các ký tự.

+2

+1 Cảm ơn câu trả lời này, tôi cần truy cập bàn phím thô trong chương trình đầu cuối và đây là giải pháp! Nhưng người ta nên nhớ rằng bằng cách sử dụng truy cập bàn phím thô, chương trình của bạn không "cư xử" như một chương trình thiết bị đầu cuối cổ điển. Ví dụ khi chạy nó trên một máy từ xa, bạn không thể đăng ký các sự kiện quan trọng. Chỉ cần ghi nhớ điều này. – leemes