LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

【C#】WPF 简单实现一个支持删除自身的应用

admin
2024年2月21日 12:31 本文热度 498

我准备写一个逗比的应用,然而我担心被小伙伴看到这个应用的文件从而知道是我写的,于是我就需要实现让应用能自删除的功能。核心实现方法就是调用 cmd 传入命令行,等待几秒之后删除文件。

应用程序在运行时,是不能将 exe 文件进行删除的。但是可以将 exe 改名以及在驱动器内进行移动文件。

删除应用程序可以让 cmd 进行删除,在 cmd 可以使用 timeout 命令延迟,然后通过 && 进行执行后续逻辑,从而实现延迟执行命令。让 cmd 延迟执行 DEL 命令进行删除应用,在应用调用删除之后,让应用程序结束即可。

代码如下:

        static void Main(string[] args)
       {
           var fileName = Process.GetCurrentProcess().MainModule.FileName;
           DelayDeleteFile(fileName, 2);
       }

       private static void DelayDeleteFile(string fileName, int delaySecond = 2)
       {
           fileName = Path.GetFullPath(fileName);
           var folder = Path.GetDirectoryName(fileName);
           var currentProcessFileName = Path.GetFileName(fileName);

           var arguments = $"/c timeout /t {delaySecond} && DEL /f {currentProcessFileName} ";

           var processStartInfo = new ProcessStartInfo()
           {
               Verb = "runas", // 如果程序是管理员权限,那么运行 cmd 也是管理员权限
               FileName = "cmd",
               UseShellExecute = false,
               CreateNoWindow = true, // 如果需要隐藏窗口,设置为 true 就不显示窗口
               Arguments = arguments,
               WorkingDirectory = folder,
           };

           Process.Start(processStartInfo);
       }

本文所有代码放在 github 和 gitee 欢迎访问

可以通过如下方式获取本文代码

先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码

git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin 62aeb3d73ca3bf97f24a7283a61bce8b7774e799

以上使用的是 gitee 的源,如果 gitee 不能访问,请替换为 github 的源

git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git

获取代码之后,进入 QarnafahayWalllukerrairbar 文件夹


本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF-%E7%AE%80%E5%8D%95%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%E6%94%AF%E6%8C%81%E5%88%A0%E9%99%A4%E8%87%AA%E8%BA%AB%E7%9A%84%E5%BA%94%E7%94%A8.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者前往 CSDN 关注我的主页

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 。


该文章在 2024/2/21 12:31:11 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved