2009-09-11 19 views
16

Hem "anahtar aşağı" hem de "anahtar yukarı" olaylarına dayalı olarak farklı eylemler gerçekleştirecek basit bir C programı yazmak istiyorum. Bu program rxvt içinden çalıştırılacaktır. Hem tuşa basma ve bültenleri erişmek için hangi kütüphane veya mekanizmaLinux terminal uygulamalarında tuşa basma ve tuş bırakma olaylarını alma?

? /dev/tty'un okunmasının sadece anahtar sürümleri vermesi doğru mu? Bu, termcap, terminfo, ncurses ve argo için de geçerli midir? Bunu bir terminal uygulamasından gerçekleştirmenin bir yolu var mı?

cevap

3

Ben ncurses'in çalışacak sanmıyorum. Basilevs, "yukarı ok" tuşu ve "aşağı ok" tuşu ile ilgili önemli bir basın açıklaması ve serbest bırakılmadı.

4

Bu genel durumda çalışmaz. ANSI terminalleri (tüm emülatörlerin inişi) sadece "bas" olaylarını temsil eder. Olayları bağımsız olarak kaydetmiyorlar. Eğer düşük seviyeli klavye olay erişmeniz gerekiyorsa

, uygun ortam gerçekten bir GUI programıdır. Bir web uygulamasının bile, önemli olaylara bir terminalden daha temiz erişimi olacaktır.

7

aşağıdaki bağlantıları yerine sadece anahtar bültenleri daha klavye olaylarına erişim sağlayacak klavye ham modunu kullanarak bazı yardım olabilir.

  1. Bu Linux Journal article
  2. SourceForge
  3. üzerindeki bu article Ve hepsi kötü gittiğinde bu HOWTO

Ham modu kendi dönüşümünü yapmak zorunda dezavantajı var kodları karakterlere rağmen tara. Bu yanıt için

+2

1 Teşekkürler, ben bir terminal programında ham klavye erişimi gerekli ve bu çözüm oldu! Ancak, ham klavye erişimini kullanmanın, programınızın klasik bir terminal programı gibi davranmadığını unutmamalıyız. Örneğin, uzak bir makinede çalışırken, önemli olayları kaydedemezsiniz. Sadece bunu aklında tut. – leemes

İlgili konular