c#如何写一个自杀程序 本帖最后由 NT5763 于 2010-11-19 23:44:08 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var exefile = Environment.GetCommandLineArgs()[0];var bat = "ping 1.1.1.1 /n 3 /w 1000 > nul\n";bat += "del " + exefile + "\n";bat += @"del d:\suicide.bat";File.WriteAllText(@"d:\suicide.bat", bat);Process.Start(@"d:\suicide.bat");Environment.Exit(0); ls的基础上。修改为循环判断程序是否可以被删除。用del exefile然后判断if errorlevel 1 then ...的方式循环判断直到删除后再删除自己比较合理。延时效果不好。要么时间太长,要么时间太短,无法控制。 ls的基础上。修改为循环判断程序是否可以被删除。用del exefile然后判断if errorlevel 1 then ...的方式循环判断直到删除后再删除自己比较合理。延时效果不好。要么时间太长,要么时间太短,无法控制。 public static void TestForKillMyself() { string bat = @"@echo off:tryagaindel %1if exist %1 goto tryagaindel %0"; File.WriteAllText("killme.bat", bat);//写bat文件 ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = "killme.bat"; psi.Arguments = "\"" + Environment.GetCommandLineArgs()[0] + "\""; psi.WindowStyle = ProcessWindowStyle.Hidden; Process.Start(psi); } var exefile = Environment.GetCommandLineArgs()[0];var bat = "ping 1.1.1.1 /n 3 /w 1000 > nul\n";bat += "del " + exefile + "\n";bat += @"del d:\suicide.bat";File.WriteAllText(@"d:\suicide.bat", bat);Process.Start(@"d:\suicide.bat");Environment.Exit(0); 以前实现过,好像是用bat实现的,具体不太清楚。 很简单,分为四部1、主程序执行的时候,调用fileStream 在磁盘上写出一个新的执行文件,这个执行文件可以当成资源文件嵌入到主程序中。2、主程序通过进程管理启动这个新生成的执行文件。3、主程序和新进程之间通讯,这个方法就太多了,比方说socket4、主程序退出,新进程删除主程序。 说下思路吧1.首先获取程序的路径,格式化个删除的命令 cmd.exe /c del 文件名2.用CreateProcess来创建子进程,也就是cmd.exe3.提升进程的执行优先级4.让cmd.exe带参数执行,也就是先前格式化出来的那个 关于string.split()的问题 为什么要这么定义:(textBox) Tbox =(textBox)sender; 我想开发非.NET程序,是不是只能用以前的VB,c++,DELPHI,PB....,可以可写非托管的 DataTable问题 C#中如何实现对局域网计算机的重起和关机????? 转换为string型的问题 结构体读写的问题? c#中怎么根据4个点的坐标在图片上画出一个四边形 请问怎样打印 richtextbox中的内容 求救!!!,如何对int数据类型进行位操作??? 【200分求助】如何播放内存中的媒体流? C# 基于Socket 局域网聊天程序
var exefile = Environment.GetCommandLineArgs()[0];
var bat = "ping 1.1.1.1 /n 3 /w 1000 > nul\n";
bat += "del " + exefile + "\n";
bat += @"del d:\suicide.bat";
File.WriteAllText(@"d:\suicide.bat", bat);
Process.Start(@"d:\suicide.bat");
Environment.Exit(0);
del exefile
然后判断if errorlevel 1 then ...
的方式循环判断直到删除后再删除自己比较合理。延时效果不好。要么时间太长,要么时间太短,无法控制。
del exefile
然后判断if errorlevel 1 then ...
的方式循环判断直到删除后再删除自己比较合理。延时效果不好。要么时间太长,要么时间太短,无法控制。
{
string bat = @"@echo off
:tryagain
del %1
if exist %1 goto tryagain
del %0";
File.WriteAllText("killme.bat", bat);//写bat文件
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "killme.bat";
psi.Arguments = "\"" + Environment.GetCommandLineArgs()[0] + "\"";
psi.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(psi);
}
var bat = "ping 1.1.1.1 /n 3 /w 1000 > nul\n";
bat += "del " + exefile + "\n";
bat += @"del d:\suicide.bat";
File.WriteAllText(@"d:\suicide.bat", bat);
Process.Start(@"d:\suicide.bat");
Environment.Exit(0);
1.首先获取程序的路径,格式化个删除的命令 cmd.exe /c del 文件名
2.用CreateProcess来创建子进程,也就是cmd.exe
3.提升进程的执行优先级
4.让cmd.exe带参数执行,也就是先前格式化出来的那个