#![allow(
non_snake_case,
non_upper_case_globals,
non_camel_case_types,
dead_code,
clippy::all
)]
#[link(name = "kernel32")]
extern "system" {
pub fn CloseHandle(hobject: HANDLE) -> BOOL;
}
#[link(name = "kernel32")]
extern "system" {
pub fn CreateToolhelp32Snapshot(
dwflags: CREATE_TOOLHELP_SNAPSHOT_FLAGS,
th32processid: u32,
) -> HANDLE;
}
#[link(name = "kernel32")]
extern "system" {
pub fn GetConsoleWindow() -> HWND;
}
#[link(name = "kernel32")]
extern "system" {
pub fn Process32First(hsnapshot: HANDLE, lppe: *mut PROCESSENTRY32) -> BOOL;
}
#[link(name = "kernel32")]
extern "system" {
pub fn Process32Next(hsnapshot: HANDLE, lppe: *mut PROCESSENTRY32) -> BOOL;
}
#[link(name = "user32")]
extern "system" {
pub fn ShowWindow(hwnd: HWND, ncmdshow: SHOW_WINDOW_CMD) -> BOOL;
}
pub type BOOL = i32;
pub type CREATE_TOOLHELP_SNAPSHOT_FLAGS = u32;
pub type HANDLE = *mut core::ffi::c_void;
pub type HWND = *mut core::ffi::c_void;
pub const INVALID_HANDLE_VALUE: HANDLE = -1i32 as _;
#[repr(C)]
#[derive(Clone, Copy)]
pub struct PROCESSENTRY32 {
pub dwSize: u32,
pub cntUsage: u32,
pub th32ProcessID: u32,
pub th32DefaultHeapID: usize,
pub th32ModuleID: u32,
pub cntThreads: u32,
pub th32ParentProcessID: u32,
pub pcPriClassBase: i32,
pub dwFlags: u32,
pub szExeFile: [i8; 260],
}
pub type SHOW_WINDOW_CMD = i32;
pub const SW_HIDE: SHOW_WINDOW_CMD = 0i32;
pub const SW_SHOW: SHOW_WINDOW_CMD = 5i32;
pub const TH32CS_SNAPPROCESS: CREATE_TOOLHELP_SNAPSHOT_FLAGS = 2u32;
pub const TRUE: BOOL = 1i32;