simple/
simple.rs

1use win_hotkeys::HotkeyManager;
2use win_hotkeys::VKey;
3
4fn main() {
5    let mut hkm = HotkeyManager::new();
6
7    // Register a system-wide hotkey with the trigger key 'A' and the modifier key 'ALT'
8    let trigger_key = VKey::from_keyname("a").unwrap();
9    let mod_key = VKey::from_keyname("alt").unwrap();
10    hkm.register_hotkey(trigger_key, &[mod_key], || {
11        println!("Hotkey ALT + A was pressed");
12    })
13    .unwrap();
14
15    // Register a system-wide hotkey with the trigger key 'B' and the modifier key 'f24'
16    let trigger_key = VKey::from_keyname("b").unwrap();
17    let modifiers = &[VKey::from_vk_code(0x87)];
18    hkm.register_hotkey(trigger_key, modifiers, || {
19        println!("Hotkey F24 + B was pressed");
20    })
21    .unwrap();
22
23    // Register a system-wide hotkey with the trigger key 'C' and multiple modifier key
24    hkm.register_hotkey(VKey::C, &[VKey::LWin, VKey::Menu], || {
25        println!("Hotkey WIN + ALT + C was pressed");
26    })
27    .unwrap();
28
29    // Register and store id for system-wide hotkey with trigger key 'D' and modifier key 'ALT'
30    let hotkey_id = hkm
31        .register_hotkey(
32            VKey::from_vk_code(0x44),
33            &[VKey::from_vk_code(0xA4)],
34            || {
35                println!("Hotkey ALT + D was pressed");
36            },
37        )
38        .unwrap();
39
40    // Unregister hotkey with ID
41    hkm.unregister_hotkey(hotkey_id);
42
43    // Run the event handler in a blocking loop. This will block forever and execute the set
44    // callbacks when the registered hotkeys are detected
45    hkm.event_loop();
46}