示例下载killself.rar
原理:在c#代码中生成一个bat文件,利用这个bat文件来删掉程序自身。
Code
[DllImport("kernel32.dll")]
public static extern uint WinExec(string lpCmdLine, uint uCmdShow);
//(注意:调试的时候如果开启了使用宿主进程将会删除自身失败,建议到Debug目录下运行主程序看效果)
private void Window_Closed(object sender, EventArgs e)
{
string APPFile = Environment.CommandLine.Replace("\"", "");//此应用程序的路径
string BatFile = APPFile.Substring(0, APPFile.LastIndexOf("\\")) + "\\kill.bat";//生成的bat文件路径
using (StreamWriter vStreamWriter = new StreamWriter(BatFile, false, Encoding.Default))//生成bat文件
{
vStreamWriter.Write(string.Format(
":del\r\n" +
" del \"{0}\"\r\n" +
"if exist \"{0}\" goto del\r\n" +
"del %0\r\n", APPFile));
}
WinExec(BatFile, 0);//运行bat文件
this.Close();
}
[DllImport("kernel32.dll")]
public static extern uint WinExec(string lpCmdLine, uint uCmdShow);
//(注意:调试的时候如果开启了使用宿主进程将会删除自身失败,建议到Debug目录下运行主程序看效果)
private void Window_Closed(object sender, EventArgs e)
{
string APPFile = Environment.CommandLine.Replace("\"", "");//此应用程序的路径
string BatFile = APPFile.Substring(0, APPFile.LastIndexOf("\\")) + "\\kill.bat";//生成的bat文件路径
using (StreamWriter vStreamWriter = new StreamWriter(BatFile, false, Encoding.Default))//生成bat文件
{
vStreamWriter.Write(string.Format(
":del\r\n" +
" del \"{0}\"\r\n" +
"if exist \"{0}\" goto del\r\n" +
"del %0\r\n", APPFile));
}
WinExec(BatFile, 0);//运行bat文件
this.Close();
}