keyboard_input_usage/
keyboard_input_usage.rs1use keyboard_codes::{current_platform, KeyParseError, KeyboardInput};
4
5fn main() -> Result<(), KeyParseError> {
6 let key_a = "A".parse::<KeyboardInput>()?;
8 let modifier_ctrl = "Control".parse::<KeyboardInput>()?;
9 let _alias_esc = "esc".parse::<KeyboardInput>()?; println!("key_a 是普通键: {}", key_a.is_key()); println!("modifier_ctrl 是修饰键: {}", modifier_ctrl.is_modifier()); if let Some(key) = key_a.as_key() {
16 println!("获取内部 Key: {}", key);
17 }
18
19 let platform = current_platform();
21 let code_a = key_a.to_code(platform);
22 println!("A 键在 {} 的键码: 0x{:02X}", platform, code_a);
23
24 if let Some(parsed) = KeyboardInput::from_code(code_a, platform) {
26 println!("从键码反解析: {}", parsed);
27 }
28
29 let inputs = ["Ctrl", "SHIFT", "alt", "F1", "space"];
31 println!("\n高级解析测试:");
32 for input in inputs {
33 match KeyboardInput::parse_with_aliases(input) {
34 Ok(kb_input) => println!(" '{}' -> {}", input, kb_input),
35 Err(e) => println!(" '{}' 解析失败: {}", input, e),
36 }
37 }
38
39 println!("\nDisplay 实现:");
41 println!("{} + {} = 组合键", modifier_ctrl, key_a);
42
43 Ok(())
44}