2010-11-16 51 views
1

我在Linux上使用curses編寫了一個小文本模式應用程序。檢測curses中的自動鍵重複

對於鍵盤輸入,我使用curses函數。重要的自動重複工作,例如如果我按住一個鍵,我會得到多個關鍵事件,直到我再次釋放密鑰。

是否有可能區分真正的鍵事件和鍵重複邏輯生成的事件?

背景:該應用程序是一個小數據輸入前端,用戶可以修改某些參數的整數。從長遠來看,該應用程序將在沒有標準鍵盤的情況下工作。我只有四個數據輸入按鈕:'增加','減少','確定'和'取消'。

由於數字範圍很大,我想知道用戶是否按下了一個鍵。如果他這樣做,我可以通過我的數字範圍更快地掃描,而不是將我的數字遞增1,而是遞增10或100。如果用戶oth敲擊鍵,則輸入方法應該再次精確,並且僅增加或減少數字。

這可能與curses的鍵盤輸入功能?

回答

2

否 - curses只是從終端接收密鑰。如果你真的需要它,你可以嘗試來查看是否通過查看每次按鍵之間的延遲來自動或不按鍵重複。但是,特別是通過遠程連接,這可能不是一個好的解決方案,因爲延遲會受到網絡延遲的影響。

最好的解決方案可能是使用UP/DOWN小步驟和PAGEUP/PAGEDOWN大步驟。

+0

沒錯。請記住,終端可能是ssh之類的遠程會話,在這種情況下,密鑰重複邏輯甚至不在與curses應用程序運行在同一臺機器上。 – caf 2010-11-16 03:33:30

+0

不是我希望的答案,但你是對的..似乎不可能。謝謝,ThiefMaster。 – 2010-11-17 02:38:49