Switch to windows-rs

This commit is contained in:
Your Name
2022-06-12 15:30:50 -04:00
parent a61e3e5d3a
commit fb172f673e
4 changed files with 83 additions and 45 deletions

View File

@@ -1,21 +1,23 @@
mod pid_to_exe;
use std::ptr::null_mut;
use winapi::{
shared::windef::{HWINEVENTHOOK__, HWND__},
um::winuser::{
DispatchMessageW, GetMessageW, GetWindowThreadProcessId, TranslateMessage,
EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_MINIMIZEEND, MSG, WINEVENT_OUTOFCONTEXT,
WINEVENT_SKIPOWNPROCESS,
use windows::Win32::{
Foundation::{HINSTANCE, HWND},
UI::{
Accessibility::{SetWinEventHook, HWINEVENTHOOK},
WindowsAndMessaging::{
DispatchMessageW, GetMessageW, GetWindowThreadProcessId, TranslateMessage,
EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_MINIMIZEEND, MSG, WINEVENT_OUTOFCONTEXT,
WINEVENT_SKIPOWNPROCESS,
},
},
};
use crate::pid_to_exe::pid_to_exe_path;
unsafe extern "system" fn win_event_proc(
_hook: *mut HWINEVENTHOOK__,
_hook: HWINEVENTHOOK,
event: u32,
hwnd: *mut HWND__,
hwnd: HWND,
_id_object: i32,
_id_child: i32,
_dw_event_thread: u32,
@@ -28,21 +30,21 @@ unsafe extern "system" fn win_event_proc(
}
}
fn main() {
fn win_event_hook_loop() {
unsafe {
winapi::um::winuser::SetWinEventHook(
SetWinEventHook(
EVENT_SYSTEM_FOREGROUND,
EVENT_SYSTEM_FOREGROUND,
null_mut(),
HINSTANCE::default(),
Some(win_event_proc),
0,
0,
WINEVENT_OUTOFCONTEXT | WINEVENT_SKIPOWNPROCESS,
);
winapi::um::winuser::SetWinEventHook(
SetWinEventHook(
EVENT_SYSTEM_MINIMIZEEND,
EVENT_SYSTEM_MINIMIZEEND,
null_mut(),
HINSTANCE::default(),
Some(win_event_proc),
0,
0,
@@ -50,9 +52,12 @@ fn main() {
);
let mut msg: MSG = Default::default();
while GetMessageW(&mut msg, null_mut(), 0, 0) > 0 {
while GetMessageW(&mut msg, HWND::default(), 0, 0).as_bool() {
TranslateMessage(&msg);
DispatchMessageW(&msg);
}
}
}
fn main() {
win_event_hook_loop();
}