使用SetPriorityClass让进程退出之后删除自己
来源:互联网 发布:淘宝哪家店铺零食好吃 编辑:程序博客网 时间:2024/04/30 08:16
VOIDDeleteMyself(){TCHARtchCmd[MAX_PATH]= {0};TCHARtchProcPath[MAX_PATH]= {0};STARTUPINFOStartupInfo= {0};PROCESS_INFORMATIONProcInfo= {0};__try{if (!GetEnvironmentVariable(_T("COMSPEC"), tchCmd, MAX_PATH)){printf("[DeleteMyself] : GetEnvironmentVariable failed. (%d) \n", GetLastError());__leave;}if (!GetModuleFileName(NULL, tchProcPath, MAX_PATH)){printf("[DeleteMyself] : GetModuleFileName failed. (%d) \n", GetLastError());__leave;}_tcscat_s(tchCmd, MAX_PATH, _T(" /c del \""));_tcscat_s(tchCmd, MAX_PATH, tchProcPath);_tcscat_s(tchCmd, MAX_PATH, _T("\""));// 设置本程序进程的执行级别为实时执行,这本程序马上获取CPU执行权,快速退出。if (!SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS)){printf("[DeleteMyself] : SetPriorityClass failed. (%d) \n", GetLastError());__leave;}// if (!SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL))// {// printf("[DeleteMyself] : SetThreadPriority failed. (%d) \n", GetLastError());// __leave;// }StartupInfo.cb = sizeof(STARTUPINFO); StartupInfo.dwFlags = STARTF_USESHOWWINDOW; StartupInfo.wShowWindow = SW_HIDE;if (!CreateProcess(NULL, tchCmd, NULL, NULL, FALSE, CREATE_SUSPENDED | CREATE_NO_WINDOW | DETACHED_PROCESS, NULL, NULL, &StartupInfo, &ProcInfo)){printf("[DeleteMyself] : CreateProcess failed. (%d) \n", GetLastError());__leave;} // 设置命令行进程的执行级别为空闲执行,这使本程序有足够的时间从内存中退出。if (!SetPriorityClass(ProcInfo.hProcess, IDLE_PRIORITY_CLASS)){printf("[DeleteMyself] : SetPriorityClass failed. (%d) \n", GetLastError());__leave;}// if (!SetThreadPriority(ProcInfo.hThread, THREAD_PRIORITY_IDLE))// {// printf("[DeleteMyself] : SetThreadPriority failed. (%d) \n", GetLastError());// __leave;// }if (ResumeThread(ProcInfo.hThread) == -1){printf("[DeleteMyself] : ResumeThread failed. (%d) \n", GetLastError());__leave;}}__finally{if (ProcInfo.hProcess)CloseHandle(ProcInfo.hProcess);if (ProcInfo.hThread)CloseHandle(ProcInfo.hThread);}ExitProcess(ERROR_SUCCESS);return ;}
0 0
- 使用SetPriorityClass让进程退出之后删除自己
- 使用SHChangeNotify让进程立即删除自己
- Shell使用技巧之后台进程退出
- 如何让进程退出前删除自身EXE
- SetPriorityClass
- 让进程安全地退出
- 让进程安全地退出
- 为什么nohup在终端退出之后进程会退出
- 使用UpdateResource让一个exe在退出时修改自己的资源
- 进程退出前删除自身EXE
- 进程退出前删除自身EXE程序
- 进程退出前删除自身EXE
- 进程退出前删除自身EXE
- [VB]退出进程时删除自身...
- 进程退出前删除自身EXE
- c强制退出本进程自己,vc关闭自己
- SetPriorityClass()函数
- 如何让自己30岁之后更值钱
- 路径的几种说法
- 树莓派开发系列教程9——树莓派GPIO控制
- opencv_highgui2410.lib(window_w32.obj) : error LNK2001: 无法解析的外部符号
- 中国国粹文化研究院介绍
- 应用安装位置
- 使用SetPriorityClass让进程退出之后删除自己
- Linux中安装使用rsync
- Android上使调用OpenCV 2.4.10 实现二维码区域定位(Z-xing 码)
- Qt中对坐标轴的相关操作
- hdu1728——逃离迷宫——————【BFS】
- 内核kernel、根文件系统rootfs如何映射到对应的nand flash
- webrtc中APM(AudioProcessing module)的使用
- 跳转语句
- Java命令,打包遇到问题