Acabei de encontrar um código c # recentemente que alegou tornar um processo "não-clicável". Meu primeiro pensamento foi, impossível, basta executar o taskmgr como administrador e finalizá-lo. Em uma inspeção mais profunda, notei que quando você tenta fechá-lo, ele exibe esta caixa de mensagem:
Então,issofazcomquesejaimpossíveldematar?Esevocêtiverquefecharesteprocesso,masnãodesligarseucomputador?Comovocêderrotariaisso?Issorealmentetornariaoprocessoinutilizável?
Perguntarealpararesolverqualquerconfusão:Comovocêfechaessetipodeprocesso,queimplementacódigosemelhanteesecomportadamesmamaneira?
CódigoC#:
usingSystem.Runtime.InteropServices;usingSystem.Diagnostics;[DllImport("ntdll.dll", SetLastError = true)]
private static extern int NtSetInformationProcess(IntPtr hProcess, int processInformationClass
, ref int processInformation, int processInformationLength);
//https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FNT%20Objects%2FProcess%2FPROCESS_INFORMATION_CLASS.html
public void critical(int status)
{
int BreakOnTermi =0x1D; //breakoftermination value
//https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FNT%20Objects%2FProcess%2FPROCESS_INFORMATION_CLASS.html
Process.EnterDebugMode();
NtSetInformationProcess(Process.GetCurrentProcess().Handle, BreakOnTermi,
ref status, sizeof(int));
}
// critical(1); enable anti termanite,critical(0) disable anti terminate.
//https://www.youtube.com/watch?v=XiTzsh1hErI&feature=youtu.be