C# 当应用程序被TaskManager或CMD终止时执行代码
我正在为我的笔记本电脑制作一个远程管理工具,所以无论何时我去哪里,我都可以通过网络界面访问它 我想知道,每当应用程序被Task Manager或CMD/Powershell终止时,是否可以执行以下代码:C# 当应用程序被TaskManager或CMD终止时执行代码,c#,mysql,get,httpwebrequest,C#,Mysql,Get,Httpwebrequest,我正在为我的笔记本电脑制作一个远程管理工具,所以无论何时我去哪里,我都可以通过网络界面访问它 我想知道,每当应用程序被Task Manager或CMD/Powershell终止时,是否可以执行以下代码: HttpWebRequest request = (HttpWebRequest)WebRequest.Create($"http://10.0.0.1/?p=Logout&HOSTNAME={HOSTNAME}&IP={IP}&USERNAME={USE
HttpWebRequest request = (HttpWebRequest)WebRequest.Create($"http://10.0.0.1/?p=Logout&HOSTNAME={HOSTNAME}&IP={IP}&USERNAME={USERNAME}&HASH={HASH}");
request.AutomaticDecompression = DecompressionMethods.GZip;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse());
(主机名、IP、用户名和哈希是变量)
这将被执行,以便我的笔记本电脑从我的数据库中注销
另外,我知道它容易受到SQL注入的攻击,但我稍后会修复它。取决于您的应用程序被终止的方式,但是您可以涵盖很多内容。我确信它适用于taskmanager,但是TerminateProcess和内核模式下的TerminateProcess可能会让人感到痛苦,我想不是这样的。下面是一个例子:
private delegate bool ConsoleEventDelegate(int eventType);
public static Main(string[] args)
{
SetConsoleCtrlHandler(ConsoleEventCallback, true);
AppDomain.CurrentDomain.UnhandledException += Reset;
AppDomain.CurrentDomain.ProcessExit += Exit;
AppDomain.CurrentDomain.DomainUnload += Exit;
}
private static void Exit(object sender, EventArgs e)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create($"http://10.0.0.1/?p=Logout&HOSTNAME={HOSTNAME}&IP={IP}&USERNAME={USERNAME}&HASH={HASH}");
request.AutomaticDecompression = DecompressionMethods.GZip;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse());
}
private static void Reset(object sender, UnhandledExceptionEventArgs e)
{
Exit(null, null);
}
private static bool ConsoleEventCallback(int eventType = 0)
{
Exit(null, null);
return false;
}