keyboard_query 0.1.0

A basic library for querying keyboard state on-demand without a window.
Documentation
extern crate user32;

use windows::user32::GetAsyncKeyState;

pub struct DeviceState;

impl DeviceState {
    pub fn new() -> DeviceState {
        DeviceState {}
    }

    pub fn query_keymap(&self) -> Vec<u16> {
        let mut keycodes = vec![];
        for key in 0_u16..256_u16 {
            unsafe {
                let state = GetAsyncKeyState(key as i32) as u32;
                if state & 0x8000 != 0 {
                    keycodes.push(key);
                }
            }
        }
        keycodes
    }
}