@Heavy Mask
Wanted to thank you for this. I don't know if you ever found a solution, but your script inspired me to create the below script. Might be able to use it yourself?
;;β============================================================β
#NoEnv
#Persistent
#SingleInstance, Force
SetBatchLines, -1
SetTitleMatchMode 2
SetWinDelay, 0
^!LButton::    ;;β------βπ₯β(Ctrl + Alt + Left Click)  
;;β------------ββ’ RUN SCRIPT AS ADMIN β’β----------------------------------------------------β
if !A_IsAdmin
{
    MsgBox, 4, Admin Required, This Script Needs To`nRun As Administrator To`nTerminate Certain Processes...`n`n`tRestart With Admin Privileges?
    IfMsgBox, Yes
    {
        Run *RunAs "%A_ScriptFullPath%"
        ExitApp
    }
    else
    {
        MsgBox, 16, Error, !  !  !  A T T E N T I O N  !  !  !`n`n Script Will Not Continue`nWithout Admin Privileges!!,5
        ExitApp
    }
}
MouseGetPos,,, id
WinGet, pid, PID, ahk_id %id%
if (!pid) {
    MsgBox, 16, Error, Failed To Retrieve Process ID.,2
    Return
}
WinGetTitle, winTitle, ahk_id %id%
if (winTitle = "") 
    winTitle := "Unknown Window"
WinGet, exeName, ProcessName, ahk_id %id%
;;β------------ββ’ PREVENT TERMINATION OF CRITICAL SYSTEM PROCESSES β’β-------β
criticalProcesses := "explorer.exe, csrss.exe, wininit.exe, winlogon.exe, smss.exe, services.exe, lsass.exe, svchost.exe"
if exeName in %criticalProcesses%
{
    MsgBox, 16, Warning, Termination Of %exeName%`nIs Blocked To Prevent System Instability.,5
    Return
}
MsgBox, 4, Confirm Termination, Terminate Process %pid% ("%winTitle%", %exeName%)?  
IfMsgBox, No
    Return
hProcess := DllCall("OpenProcess", "UInt", 1, "Int", 0, "UInt", pid, "Ptr")
if (!hProcess) {
    MsgBox, 16, Error, Failed To Open Process.`nIt May Require Admin Privileges.,5
    Return
}
result := DllCall("ntdll\NtTerminateProcess", "ptr", hProcess, "UInt", 0)
DllCall("CloseHandle", "ptr", hProcess)
if (result != 0) {
    MsgBox, 16, Error, Failed To Terminate Process.,5
} else {
    MsgBox, 64, Success, Process %pid% ("%winTitle%", %exeName%) Terminated.,3
;;β------------ββ’ LOG TERMINATED PROCESSES WITH TIMESTAMP β’β------------------β
FormatTime, timeStamp, , H:mm:ss tt  -  MMMM dd, yyyy
;;β------------β___EXAMPLE 1___β---------------------------------------------------------------β
/*    ;;β------βSAVE LOG FILE WITH DIRECT PATH.
logFilePath := "C:\Users\username\Full\File\Path\ProcessKillLog.txt"    ;;β------βExample Path.
*/
;;β------------β___EXAMPLE 2___β---------------------------------------------------------------β
/*    ;;β------βSAVE LOG FILE IN DOCUMENTS FOLDER.
documentsDir := A_MyDocuments    ;;β------βGet the user's Documents folder.
logFilePath := documentsDir . "\ProcessKillLog.txt"    ;;β------βDefine the Log File path (Documents folder).
if !FileExist(documentsDir)    ;;β------βCreate directory if it doesn't exist.
{
    FileCreateDir, %documentsDir%
}
*/
;;β------------β___EXAMPLE 3___β---------------------------------------------------------------β
;;β------βSAVE LOG FILE IN SCRIPTS FOLDER.  <β------ Currently In Use ---β<<
    scriptDir := A_ScriptDir    ;;β------βGet the script's directory.
    logFilePath := scriptDir . "\ProcessKillLog.txt"    ;;β------βDefine the Log File path (Script folder).
    if !FileExist(scriptDir)    ;;β------βCreate directory if it doesn't exist.
    {
        FileCreateDir, %scriptDir%
    }
file := FileOpen(logFilePath, "a")    ;;β------βAppend log details.
if (file) {
    file.WriteLine("____________________________________________")
    file.WriteLine("* Process Killed *  [ " . timeStamp . " ]`nProcess:`t"  . exeName . "`nPID:`t" . pid . "`nTitle:`t" . winTitle)
    file.WriteLine("____________________________________________`n")
    file.Close()
    MsgBox, 64, Success, Log File Successfully Updated.,5
} else {
    MsgBox, 16, Error, Failed To Open Log File For Writing.,5
}
}
Return
;;β============================================================β