Rust 如何在用户不按Enter键的情况下获得键盘输入?
我会使用ncurses,但我希望它在Windows上运行。在C++中,我可以从Culio使用<代码> kbHIT()/<代码>和<代码> GETCHEL()/Cux>首先检查是否有字符被按下,然后得到它。p> 我想要一些类似的生锈的东西。使用板条箱,您可以查询键盘状态,而不需要活动窗口。您只需在您的Rust 如何在用户不按Enter键的情况下获得键盘输入?,rust,Rust,我会使用ncurses,但我希望它在Windows上运行。在C++中,我可以从Culio使用 kbHIT()/和 GETCHEL()/Cux>首先检查是否有字符被按下,然后得到它。p> 我想要一些类似的生锈的东西。使用板条箱,您可以查询键盘状态,而不需要活动窗口。您只需在您的Cargo.toml文件中添加对此板条箱的依赖项: [dependencies] device_query = "0.1.0" 用法很简单,类似于kbhit()和getch()。不同之处在于,您将收到一组按键(),如果没有
Cargo.toml
文件中添加对此板条箱的依赖项:
[dependencies]
device_query = "0.1.0"
用法很简单,类似于kbhit()
和getch()
。不同之处在于,您将收到一组按键(),如果没有按键,此Vec
将为空。单个调用涵盖了kbhit()
和getch()
组合的功能
use device_query::{DeviceQuery, DeviceState, Keycode};
fn main() {
let device_state = DeviceState::new();
loop {
let keys: Vec<Keycode> = device_state.get_keys();
for key in keys.iter() {
println!("Pressed key: {:?}", key);
}
}
}
FFI到
kbhit()
和getch()
?@ааачэээаааааааааааааа。例如,查看nix
板条箱。另请参见
let keys: Vec<Keycode> = device_state.get_keys();
if !keys.is_empty(){
println!("kbhit");
}