Как проверить удерживается ли клавиша на Windows os?
Я попытался сделать это с помощью крейта winit, но там есть только нажатие и отпускание. Если вы удерживаете нажатой одну клавишу, а затем нажимаете вторую, то нажатие первой клавиши сбрасывается. Мне нужно знать, удерживается ли клавиша в данный момент нажатой или нет, независимо от других клавиш. Так как это сделано в библиотеке keyboard на python функция is_pressed()
Я не нашел ничего подобного на crates.io . Может быть, кто-то сталкивался с такой проблемой?
[package]
name = "windows_key_press"
version = "0.1.0"
edition = "2021"
[dependencies.windows]
version = "0.37.0"
features = ["Win32_UI_Input_KeyboardAndMouse"]
main.rs
use std::thread;
use windows::Win32::UI::Input::KeyboardAndMouse::{GetKeyState};
fn main() {
const VK_SPACE: i32 = 0x20;
const HIGHER_ORDER_BIT: i16 = -128;
loop {
let state = unsafe { GetKeyState(VK_SPACE) };
let is_up = state & HIGHER_ORDER_BIT == 0;
println!("{}", is_up);
thread::sleep(std::time::Duration::from_millis(100));
}
}