Switch to windows-rs
This commit is contained in:
35
src/main.rs
35
src/main.rs
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user