adapt codebase to own, new system info impl

This commit is contained in:
2025-09-12 01:07:10 +01:00
parent 32e21f58a1
commit ab026c0bc6
9 changed files with 60 additions and 149 deletions
+8 -8
View File
@@ -2,9 +2,9 @@ use crate::util::{
consts::game::{EXE_ENHANCED, EXE_LEGACY},
countdown::Countdown,
log,
system_info::SystemInfo,
};
use std::time::{Duration, Instant};
use sysinfo::System;
use windows::Win32::{
Foundation::{CloseHandle, HANDLE, NTSTATUS},
System::Threading::{OpenProcess, PROCESS_SUSPEND_RESUME},
@@ -49,21 +49,21 @@ unsafe extern "system" {
unsafe fn NtResumeProcess(ProcessHandle: HANDLE) -> NTSTATUS;
}
fn get_gta_pid(sysinfo: &mut System) -> Option<u32> {
sysinfo.refresh_all();
if let Some((pid, _)) = sysinfo
fn get_gta_pid(system_info: &mut SystemInfo) -> Option<u32> {
system_info.refresh();
if let Some(p) = system_info
.processes()
.iter()
.find(|(_, p)| p.name() == EXE_ENHANCED || p.name() == EXE_LEGACY)
.find(|p| p.name() == EXE_ENHANCED || p.name() == EXE_LEGACY)
{
return Some(pid.as_u32());
return Some(p.pid());
} else {
return None;
}
}
pub fn activate(game_handle: &mut HANDLE, sysinfo: &mut System) -> Result<(), ()> {
let Some(pid) = get_gta_pid(sysinfo) else {
pub fn activate(game_handle: &mut HANDLE, system_info: &mut SystemInfo) -> Result<(), ()> {
let Some(pid) = get_gta_pid(system_info) else {
return Err(());
};
unsafe {
+9 -9
View File
@@ -1,9 +1,9 @@
use crate::util::{
consts::game::{EXE_ENHANCED, EXE_LEGACY},
log,
system_info::SystemInfo,
};
use std::time::{Duration, Instant};
use sysinfo::System;
const INTERVAL: Duration = Duration::from_secs(3);
@@ -27,7 +27,7 @@ impl Default for ForceClose {
}
impl ForceClose {
pub fn prompt(&mut self, force_close_button_clicked: bool, sysinfo: &mut System) {
pub fn prompt(&mut self, force_close_button_clicked: bool, system_info: &mut SystemInfo) {
if force_close_button_clicked && !self.counting {
self.button_text = "Are you sure?".to_owned();
self.timer = Instant::now();
@@ -37,7 +37,7 @@ impl ForceClose {
if self.counting && self.timer.elapsed() >= INTERVAL {
self.reset();
} else if force_close_button_clicked && !self.current_frame {
activate(sysinfo);
activate(system_info);
self.reset();
}
self.finish_current_frame();
@@ -54,13 +54,13 @@ impl ForceClose {
}
}
fn activate(sysinfo: &mut System) {
sysinfo.refresh_all();
sysinfo
fn activate(system_info: &mut SystemInfo) {
system_info.refresh();
system_info
.processes()
.iter()
.filter(|(_, p)| p.name() == EXE_ENHANCED || p.name() == EXE_LEGACY)
.for_each(|(_, p)| {
.filter(|p| p.name() == EXE_ENHANCED || p.name() == EXE_LEGACY)
.for_each(|p| {
if p.kill() == false {
log::log(
log::LogLevel::Error,
@@ -68,5 +68,5 @@ fn activate(sysinfo: &mut System) {
);
}
});
sysinfo.refresh_all();
system_info.refresh();
}
+10 -8
View File
@@ -1,10 +1,12 @@
use crate::util::consts::game::{EXE_ENHANCED, EXE_LEGACY};
use crate::util::{
consts::game::{EXE_ENHANCED, EXE_LEGACY},
system_info::SystemInfo,
};
use std::{
path::Path,
time::{Duration, Instant},
};
use strum::{Display, EnumIter};
use sysinfo::System;
use windows::{
Win32::{
NetworkManagement::WindowsFirewall::{
@@ -71,8 +73,8 @@ impl Drop for GameNetworking {
}
impl GameNetworking {
pub fn block_all(&mut self, sysinfo: &mut System) {
let Some(exe_path) = get_game_exe_path(sysinfo) else {
pub fn block_all(&mut self, system_info: &mut SystemInfo) {
let Some(exe_path) = get_game_exe_path(system_info) else {
self.blocked_status = BlockedStatus::Failed;
return;
};
@@ -133,12 +135,12 @@ impl GameNetworking {
}
}
fn get_game_exe_path(sysinfo: &mut System) -> Option<&Path> {
sysinfo.refresh_all();
if let Some((_, process)) = sysinfo
fn get_game_exe_path(system_info: &mut SystemInfo) -> Option<&Path> {
system_info.refresh();
if let Some(process) = system_info
.processes()
.iter()
.find(|(_, p)| p.name() == EXE_ENHANCED || p.name() == EXE_LEGACY)
.find(|p| p.name() == EXE_ENHANCED || p.name() == EXE_LEGACY)
{
process.exe()
} else {