LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

【C#】WPF 簡單實現(xiàn)一個支持刪除自身的應(yīng)用

admin
2024年2月21日 12:31 本文熱度 1732

我準(zhǔn)備寫一個逗比的應(yīng)用,然而我擔(dān)心被小伙伴看到這個應(yīng)用的文件從而知道是我寫的,于是我就需要實現(xiàn)讓應(yīng)用能自刪除的功能。核心實現(xiàn)方法就是調(diào)用 cmd 傳入命令行,等待幾秒之后刪除文件。

應(yīng)用程序在運行時,是不能將 exe 文件進(jìn)行刪除的。但是可以將 exe 改名以及在驅(qū)動器內(nèi)進(jìn)行移動文件。

刪除應(yīng)用程序可以讓 cmd 進(jìn)行刪除,在 cmd 可以使用 timeout 命令延遲,然后通過 && 進(jìn)行執(zhí)行后續(xù)邏輯,從而實現(xiàn)延遲執(zhí)行命令。讓 cmd 延遲執(zhí)行 DEL 命令進(jìn)行刪除應(yīng)用,在應(yīng)用調(diào)用刪除之后,讓應(yīng)用程序結(jié)束即可。

代碼如下:

        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", // 如果程序是管理員權(quán)限,那么運行 cmd 也是管理員權(quán)限
               FileName = "cmd",
               UseShellExecute = false,
               CreateNoWindow = true, // 如果需要隱藏窗口,設(shè)置為 true 就不顯示窗口
               Arguments = arguments,
               WorkingDirectory = folder,
           };

           Process.Start(processStartInfo);
       }

本文所有代碼放在 github 和 gitee 歡迎訪問

可以通過如下方式獲取本文代碼

先創(chuàng)建一個空文件夾,接著使用命令行 cd 命令進(jìn)入此空文件夾,在命令行里面輸入以下代碼,即可獲取到本文的代碼

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

以上使用的是 gitee 的源,如果 gitee 不能訪問,請?zhí)鎿Q為 github 的源

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

獲取代碼之后,進(jìn)入 QarnafahayWalllukerrairbar 文件夾


本文會經(jīng)常更新,請閱讀原文: 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 ,以避免陳舊錯誤知識的誤導(dǎo),同時有更好的閱讀體驗。

如果你想持續(xù)閱讀我的最新博客,請點擊 RSS 訂閱,推薦使用RSS Stalker訂閱博客,或者前往 CSDN 關(guān)注我的主頁

本作品采用 知識共享署名-非商業(yè)性使用-相同方式共享 4.0 國際許可協(xié)議 進(jìn)行許可。歡迎轉(zhuǎn)載、使用、重新發(fā)布,但務(wù)必保留文章署名林德熙(包含鏈接: https://blog.lindexi.com ),不得用于商業(yè)目的,基于本文修改后的作品務(wù)必以相同的許可發(fā)布。如有任何疑問,請 與我聯(lián)系 。


該文章在 2024/2/21 12:31:11 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲精品91福利在线观看 | 中文字幕第一区第二区 | 日韩亚洲欧美伊人久久 | 三级日本成网人站 | 在线观看1024国产 | 日本欧美大码a在线观看 |