似乎可以通过驻入到其他进程(如explorer),让它来杀自己
解决方案 »
- 马上结贴!!!关于release版本和debug版本名字不一样的问题!
- CTreeCtrl 删除子节点后刷新
- 烦人问题,关于所做动态库用C#调用和MFC程序调用的差别
- [RAS] 关于拨号后,如何取得RAS状态的问题
- 如何截取网络中的数据包???
- VC里有下在文件的函数吗
- 〓〓散分以庆祝本人在VC/MFC版的专家分现在为——66666分〓〓
- 人民币 高价收购视频会议源码,最好是用netmeeting sdk开发的
- 用那个函数可以获得IE的版本?
- 用STL开发的程序能移植到linux平台上吗?
- 如何在list control中添加radio button,来实现单选的功能!
- VC.net设置包含文件和库文件的问题?
.网上有不少这样的代码的.
{
lea eax, filenameDLL
push 0
push 0
push eax
push ExitProcess
push g_hmodDLL
push DeleteFile
push FreeLibrary
ret
}这段代码可以实现退出自己,并将自己删除掉,你也可以再网上搜索,关于自删除的。
* 程序自删除实现ProgSelfDel
*******************************************************************************/
BOOL ProgSelfDel(VOID)
{
SHELLEXECUTEINFO sei;
TCHAR szModule[MAX_PATH]; //存放模块的完整路径
TCHAR szComspec[MAX_PATH];//存放命令窗口的全路径
TCHAR szParams[MAX_PATH]; //存放命令参数
// 获得文件名.
if( (GetModuleFileName(0, szModule, MAX_PATH) != 0) &&
(GetShortPathName(szModule, szModule, MAX_PATH) != 0) &&
(GetEnvironmentVariable("COMSPEC", szComspec, MAX_PATH) != 0))
{
// 设置命令参数.
lstrcpy(szParams,"/c del ");
lstrcat(szParams, szModule);
lstrcat(szParams, " > nul");
// 设置结构成员.
sei.cbSize = sizeof(sei);
sei.hwnd = 0;
sei.lpVerb = "Open";
sei.lpFile = szComspec; //命令窗口的全路径
sei.lpParameters = szParams; //命令参数
sei.lpDirectory = 0;
sei.nShow = SW_HIDE; //隐藏方式阻止出现命令窗口界面
sei.fMask = SEE_MASK_NO_CONSOLE|SEE_MASK_NOCLOSEPROCESS;
//sei.fMask = SEE_MASK_NOCLOSEPROCESS;
// 执行shell命令.
if(ShellExecuteEx(&sei))
{
// 设置命令行进程的执行级别为空闲执行,使本程序有足够的时间从内存中退出.
SetPriorityClass(sei.hProcess, IDLE_PRIORITY_CLASS);
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
// 通知Windows资源浏览器,本程序文件已经被删除.
SHChangeNotify(SHCNE_DELETE, SHCNF_PATH, szModule,0);
return TRUE;
}
}
return FALSE;
}
以前在资源里面看到的代码,自删除,我调式过,能实现