use SendInput instead of keybd_event for anti afk
This commit is contained in:
+21
-24
@@ -1,8 +1,8 @@
|
|||||||
use crate::util::{self, consts::game::WINDOW_TITLE};
|
use crate::util::{self, consts::game::WINDOW_TITLE};
|
||||||
use std::time::{Duration, Instant};
|
use std::time::{Duration, Instant};
|
||||||
use windows::Win32::UI::Input::KeyboardAndMouse::{
|
use windows::Win32::UI::Input::KeyboardAndMouse::{
|
||||||
KEYBD_EVENT_FLAGS, MAP_VIRTUAL_KEY_TYPE, MapVirtualKeyW, VIRTUAL_KEY, VK_NUMPAD4, VK_NUMPAD6,
|
INPUT, INPUT_KEYBOARD, KEYBD_EVENT_FLAGS, KEYBDINPUT, KEYEVENTF_KEYUP, MAPVK_VK_TO_VSC,
|
||||||
keybd_event,
|
MapVirtualKeyW, SendInput, VIRTUAL_KEY, VK_NUMPAD4, VK_NUMPAD6,
|
||||||
};
|
};
|
||||||
|
|
||||||
const INTERVAL: Duration = Duration::from_secs(60);
|
const INTERVAL: Duration = Duration::from_secs(60);
|
||||||
@@ -40,26 +40,23 @@ impl AntiAfk {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn send(vk_codes: &[VIRTUAL_KEY]) {
|
fn send(vk_codes: &[VIRTUAL_KEY]) {
|
||||||
vk_codes.iter().for_each(|vk_code| unsafe {
|
let mut inputs = Vec::new();
|
||||||
keybd_event(
|
for &vk_code in vk_codes {
|
||||||
vk_code.0 as u8,
|
let scan_code = unsafe { MapVirtualKeyW(u32::from(vk_code.0), MAPVK_VK_TO_VSC) as u16 };
|
||||||
u8::try_from(MapVirtualKeyW(
|
for event in [KEYBD_EVENT_FLAGS(0), KEYEVENTF_KEYUP] {
|
||||||
u32::from(vk_code.0),
|
let mut input = INPUT {
|
||||||
MAP_VIRTUAL_KEY_TYPE(0),
|
r#type: INPUT_KEYBOARD,
|
||||||
))
|
..Default::default()
|
||||||
.unwrap(),
|
};
|
||||||
KEYBD_EVENT_FLAGS(0),
|
input.Anonymous.ki = KEYBDINPUT {
|
||||||
0,
|
wVk: vk_code,
|
||||||
);
|
wScan: scan_code,
|
||||||
keybd_event(
|
dwFlags: event,
|
||||||
vk_code.0 as u8,
|
time: 0,
|
||||||
u8::try_from(MapVirtualKeyW(
|
dwExtraInfo: 0,
|
||||||
u32::from(vk_code.0),
|
};
|
||||||
MAP_VIRTUAL_KEY_TYPE(0),
|
inputs.push(input);
|
||||||
))
|
}
|
||||||
.unwrap(),
|
unsafe { SendInput(&inputs, size_of::<INPUT>() as i32) };
|
||||||
KEYBD_EVENT_FLAGS(2),
|
}
|
||||||
0,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user