mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-04-24 01:28:39 +02:00
fix(wm): manually close process handles
ZiN on Discord noted that handles returned by OpenProcess must be closed manually (this is not implemented in the Drop trait for handle, it seems) https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-openprocess#remarks
This commit is contained in:
@@ -16,6 +16,10 @@ RunWait('komorebic.exe identify-tray-application class "CreativeCloudDesktopWind
|
|||||||
; Adobe Photoshop
|
; Adobe Photoshop
|
||||||
RunWait('komorebic.exe identify-border-overflow-application class "Photoshop"', , "Hide")
|
RunWait('komorebic.exe identify-border-overflow-application class "Photoshop"', , "Hide")
|
||||||
|
|
||||||
|
; Affinity Photo 2
|
||||||
|
RunWait('komorebic.exe manage-rule title "Affinity Photo 2"', , "Hide")
|
||||||
|
RunWait('komorebic.exe float-rule exe "Photo.exe"', , "Hide")
|
||||||
|
|
||||||
; Akiflow
|
; Akiflow
|
||||||
; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
||||||
RunWait('komorebic.exe identify-tray-application exe "Akiflow.exe"', , "Hide")
|
RunWait('komorebic.exe identify-tray-application exe "Akiflow.exe"', , "Hide")
|
||||||
@@ -57,6 +61,10 @@ RunWait('komorebic.exe identify-border-overflow-application exe "Cron.exe"', , "
|
|||||||
; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
||||||
RunWait('komorebic.exe identify-tray-application exe "Cron.exe"', , "Hide")
|
RunWait('komorebic.exe identify-tray-application exe "Cron.exe"', , "Hide")
|
||||||
|
|
||||||
|
; DS4Windows
|
||||||
|
; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
||||||
|
RunWait('komorebic.exe identify-tray-application exe "DS4Windows.exe"', , "Hide")
|
||||||
|
|
||||||
; Delphi applications
|
; Delphi applications
|
||||||
; Target hidden window spawned by Delphi applications
|
; Target hidden window spawned by Delphi applications
|
||||||
RunWait('komorebic.exe float-rule class "TApplication"', , "Hide")
|
RunWait('komorebic.exe float-rule class "TApplication"', , "Hide")
|
||||||
@@ -388,6 +396,8 @@ RunWait('komorebic.exe identify-border-overflow-application class "vguiPopupWind
|
|||||||
RunWait('komorebic.exe identify-border-overflow-application class "SDL_app"', , "Hide")
|
RunWait('komorebic.exe identify-border-overflow-application class "SDL_app"', , "Hide")
|
||||||
; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
||||||
RunWait('komorebic.exe identify-tray-application class "SDL_app"', , "Hide")
|
RunWait('komorebic.exe identify-tray-application class "SDL_app"', , "Hide")
|
||||||
|
; Target notification toast popups
|
||||||
|
RunWait('komorebic.exe float-rule title "notificationtoasts_"', , "Hide")
|
||||||
|
|
||||||
; Stremio
|
; Stremio
|
||||||
; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
; If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
||||||
|
|||||||
@@ -16,6 +16,10 @@ komorebic.exe identify-tray-application class "CreativeCloudDesktopWindowClass"
|
|||||||
# Adobe Photoshop
|
# Adobe Photoshop
|
||||||
komorebic.exe identify-border-overflow-application class "Photoshop"
|
komorebic.exe identify-border-overflow-application class "Photoshop"
|
||||||
|
|
||||||
|
# Affinity Photo 2
|
||||||
|
komorebic.exe manage-rule title "Affinity Photo 2"
|
||||||
|
komorebic.exe float-rule exe "Photo.exe"
|
||||||
|
|
||||||
# Akiflow
|
# Akiflow
|
||||||
# If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
# If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
||||||
komorebic.exe identify-tray-application exe "Akiflow.exe"
|
komorebic.exe identify-tray-application exe "Akiflow.exe"
|
||||||
@@ -57,6 +61,10 @@ komorebic.exe identify-border-overflow-application exe "Cron.exe"
|
|||||||
# If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
# If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
||||||
komorebic.exe identify-tray-application exe "Cron.exe"
|
komorebic.exe identify-tray-application exe "Cron.exe"
|
||||||
|
|
||||||
|
# DS4Windows
|
||||||
|
# If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
||||||
|
komorebic.exe identify-tray-application exe "DS4Windows.exe"
|
||||||
|
|
||||||
# Delphi applications
|
# Delphi applications
|
||||||
# Target hidden window spawned by Delphi applications
|
# Target hidden window spawned by Delphi applications
|
||||||
komorebic.exe float-rule class "TApplication"
|
komorebic.exe float-rule class "TApplication"
|
||||||
@@ -388,6 +396,8 @@ komorebic.exe identify-border-overflow-application class "vguiPopupWindow"
|
|||||||
komorebic.exe identify-border-overflow-application class "SDL_app"
|
komorebic.exe identify-border-overflow-application class "SDL_app"
|
||||||
# If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
# If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
||||||
komorebic.exe identify-tray-application class "SDL_app"
|
komorebic.exe identify-tray-application class "SDL_app"
|
||||||
|
# Target notification toast popups
|
||||||
|
komorebic.exe float-rule title "notificationtoasts_"
|
||||||
|
|
||||||
# Stremio
|
# Stremio
|
||||||
# If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
# If you have disabled minimize/close to tray for this application, you can delete/comment out the next line
|
||||||
|
|||||||
@@ -383,7 +383,10 @@ impl Window {
|
|||||||
|
|
||||||
pub fn exe(self) -> Result<String> {
|
pub fn exe(self) -> Result<String> {
|
||||||
let (process_id, _) = WindowsApi::window_thread_process_id(self.hwnd());
|
let (process_id, _) = WindowsApi::window_thread_process_id(self.hwnd());
|
||||||
WindowsApi::exe(WindowsApi::process_handle(process_id)?)
|
let handle = WindowsApi::process_handle(process_id)?;
|
||||||
|
let exe = WindowsApi::exe(handle);
|
||||||
|
WindowsApi::close_process(handle)?;
|
||||||
|
exe
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn class(self) -> Result<String> {
|
pub fn class(self) -> Result<String> {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ use color_eyre::Result;
|
|||||||
use windows::core::Result as WindowsCrateResult;
|
use windows::core::Result as WindowsCrateResult;
|
||||||
use windows::core::PCSTR;
|
use windows::core::PCSTR;
|
||||||
use windows::core::PWSTR;
|
use windows::core::PWSTR;
|
||||||
|
use windows::Win32::Foundation::CloseHandle;
|
||||||
use windows::Win32::Foundation::BOOL;
|
use windows::Win32::Foundation::BOOL;
|
||||||
use windows::Win32::Foundation::COLORREF;
|
use windows::Win32::Foundation::COLORREF;
|
||||||
use windows::Win32::Foundation::HANDLE;
|
use windows::Win32::Foundation::HANDLE;
|
||||||
@@ -560,6 +561,10 @@ impl WindowsApi {
|
|||||||
unsafe { OpenProcess(access_rights, inherit_handle, process_id) }.process()
|
unsafe { OpenProcess(access_rights, inherit_handle, process_id) }.process()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn close_process(handle: HANDLE) -> Result<()> {
|
||||||
|
unsafe { CloseHandle(handle) }.ok().process()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn process_handle(process_id: u32) -> Result<HANDLE> {
|
pub fn process_handle(process_id: u32) -> Result<HANDLE> {
|
||||||
Self::open_process(PROCESS_QUERY_INFORMATION, false, process_id)
|
Self::open_process(PROCESS_QUERY_INFORMATION, false, process_id)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user