易语言写程序运行后删除自身

易语言写程序运行后删除自身,第1张

给你个思路吧~你知道现在的卸载程序(uninstallexe)是怎么实现自删除的嘛? 大部分都是这样的:1用户运行uninstallexe,检测是否有命令行。若有,跳到第3步。若没有程序把自身Copy到系统临时文件夹2从临时文件夹启动自己,命令行是安装LOG。然后自己退出3(临时文件夹中的卸载程序):按照安装LOG(命令行中所指示的)中记录的安装信息,删除掉~

BOOL SelfDel()

{

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");

    // 设置结构成员

    seicbSize = sizeof(sei);

    seihwnd = 0;

    seilpVerb = "Open";

    seilpFile = szComspec;

    seilpParameters = szParams;

    seilpDirectory = 0; seinShow = SW_HIDE;

    seifMask = SEE_MASK_NOCLOSEPROCESS;

    // 创建cmd进程

    if(ShellExecuteEx(&sei))

    {

        // 设置cmd进程的执行级别为空闲执行,使本程序有足够的时间从内存中退出

        SetPriorityClass(seihProcess,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个EXE一个是主程序_TEMPEXE一个是UPDATEEXE

然后执行UPDATEEXE

关闭自己

UpdateEXE

删除原本的内容

更改主程序_TEMPEXE

为主程序exe

这下就把原本的程序完美替换了

/切割/

但是以前见过单文件自己更新自己的,不知道是否是经过打包

但文件自己更新自己是这样子滴动态生成一个BAT然后执行他就好了执行完了BAT自行删除这个就很简易了

但是您要考虑到BAT要是删除失败可就比较恶心了

如果您不关心原本的程序

或不关心原本程序的废除DALL冗余的文件

那么就简单了

但是也有前提:

前提是;你的主程序EXE

也就是你执行更新这一段代码的EXE程序自己不更新否则由于进程锁无法更新

其实也能仿

例如下载的新的EXE名字改一下生成BAT删除原本EXE更改名字BAT自行删除

/再割/

您说的自己更新自己是CLICKONCE吧

他是微软自己实现的通过WINDOWS的一个组件

前提当然也就是您说的打包了

而且整个打包方式都不同

以上就是关于易语言写程序运行后删除自身全部的内容,包括:易语言写程序运行后删除自身、求一段C语言写的程序自毁代码,要求该程序在任务结束后删除自身及相关文件.、c#如何解决更新程序并删除自身。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10109733.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存