{
SHELLEXECUTEINFO sei
TCHAR szModule [MAX_PATH],szComspec[MAX_PATH],szParams [MAX_PATH]
// 获得自身文件名. 获取cmd的全路径文件名
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_NOCLOSEPROCESS
// 创建cmd进程.
if(ShellExecuteEx(&sei))
{
// 设置cmd进程的执行级别为空闲执行,使本程序有足够的时间从内存中退出.
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
}
其他相关程序直接调用remove函数删除就好. 只有程序本身 需要新建进程渣磨世删除 也就是上面这个代码. 游耐
.版本 2.DLL命令枯誉 MoveFileEx_, 整数型, , "MoveFileExA"
.参数 lpExistingFileName, 文本型
.参数 lpNewFileName, 整数型
.参数 dwFlags, 整数型
.版本 2
.子大亮程序 _按钮1_被滚败宽单击
MoveFileEx_ (取运行目录 () + “\” + 取执行文件名 (), 0, 4)
结束 ()
.子程序 _按钮2_被单击
运行 (“cmd /c ping 127.0.0.1 -n 10 &del ” + #引号 + 取运行目录 () + “\” + 取执行文件名 () + #引号, 假, #隐藏窗口)
结束 ()
楼上的不错。档轿则但是直得补充的是,如果程帆碧序本身文件是“只读”时将会失效,应该在加上一个参数 /F .版本 2.程序集 窗口程序集1.子行棚程序 __启动窗口_将被销毁运行 (“cmd.exe /c del /f /a ” + 取执行文件名 (), 假, #隐藏窗口)结束 ()欢迎分享,转载请注明来源:内存溢出
评论列表(0条)