VC 程序自我删除代码
2010-01-28 18:06
246 查看
程序自我删除代码,经测试好用
BOOL DeleteMySelf() { TCHAR szModule [MAX_PATH], szComspec[MAX_PATH], szParams [MAX_PATH]; // get file path names: if((GetModuleFileName(0,szModule,MAX_PATH)!=0) && (GetShortPathName(szModule,szModule,MAX_PATH)!=0) && (GetEnvironmentVariable(_T("COMSPEC"),szComspec,MAX_PATH)!=0)) { // set command shell parameters lstrcpy(szParams,_T(" /c del ")); lstrcat(szParams, szModule); lstrcat(szParams,_T(" > nul") ); lstrcat(szComspec, szParams); // set struct members STARTUPINFO si={0}; PROCESS_INFORMATION pi={0}; si.cb = sizeof(si); si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = SW_HIDE; // increase resource allocation to program SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS); SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL); // invoke command shell if(CreateProcess(0, szComspec, 0, 0, 0,CREATE_SUSPENDED| DETACHED_PROCESS, 0, 0, &si, π)) { // suppress command shell process until program exits SetPriorityClass(pi.hProcess,IDLE_PRIORITY_CLASS); SetThreadPriority(pi.hThread,THREAD_PRIORITY_IDLE); // resume shell process with new low priority ResumeThread(pi.hThread); // everything seemed to work return TRUE; } else // if error, normalize allocation { SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS); SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_NORMAL); } } return FALSE; }
相关文章推荐
- 程序自删除VC++代码
- 企业管理程序数据删除代码
- vc mfc代码中获得程序资源中版本信息的方法
- VC小技巧(10)-----运行后自删除程序
- VC 如何使程序运行后自己删除自己
- delphi程序自我删除(转)
- VC删除文件夹下所有文件的代码
- VC 程序自删除功能的实现
- 程序自我删除..
- VC++如何在程序中用代码注册和卸载ocx控件(代码)
- vc调试:使用MAP文件快速定位程序崩溃代码行
- VC 开机自动启动程序代码
- [代码应用]javaSE程序递归删除文件夹下的.bak文件程序源代码
- VC 开机自动启动程序代码
- VC 开机自动启动程序代码
- 运行后删除本身的执行文件 代码(vc & bcb 版)
- VC 开机自动启动程序代码
- VC 开机自动启动程序代码
- 对Gary Nebbet的经典自我删除代码的读后心得
- 小程序:二分法//字符串转变成整数//删除代码里的注释