冰楓論壇

 找回密碼
 立即註冊
搜索
查看: 3718|回覆: 0
打印 上一主題 下一主題

[開源] [C#] 檢測檔案被什麼程式占住並關閉占住的程式

[複製鏈接]

855

主題

0

好友

869

積分

高級贊助會員

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

UID
390967
帖子
1660
主題
855
精華
0
積分
869
楓幣
12244
威望
409
存款
10100
贊助金額
1800
推廣
0
GP
2803
閱讀權限
150
在線時間
197 小時
註冊時間
2023-5-18
最後登入
2024-12-22

2023年紀念勳章 太陽勳章 神手勳章 高級客戶 VIP會員 私服達人 懶人勳章 幼兒勳章 音樂勳章 屁孩勳章 貢獻王 性別(女) 性別(男) 積分勳章 發帖達人 2023端午節紀念勳章 富豪勳章 富可敵國 2023中秋節紀念勳章 解說達人 論壇粉絲 2023聖誕節紀念勳章 2024年紀念勳章 2024端午節紀念勳章 2024中秋節紀念勳章 2024聖誕節紀念勳章

跳轉到指定樓層
1
發表於 2023-7-8 19:35:50 |只看該作者 |倒序瀏覽
查詢被什麼程式占住需要使用軟體的工具 Handle.exe
按此下載 Handle v5.0

這個例子假設 Handle.exe 放在同一個目錄下
可以嘗試開啟 pdf/doc/jpg/bmp 等檔案再檢測就可以看到效果
  1. // 要檢測的檔案
  2. string TestFile = @"c:\testfile.pdf";

  3. Process pTool = new Process();
  4. pTool.StartInfo.FileName = "handle.exe";
  5. pTool.StartInfo.Arguments = TestFile + " /accepteula";
  6. pTool.StartInfo.UseShellExecute = false;
  7. pTool.StartInfo.RedirectStandardOutput = true;
  8. pTool.Start();           
  9. pTool.WaitForExit();
  10. string outputTool = pTool.StandardOutput.ReadToEnd();

  11. // 使用正則表示篩選出占住程式的 PID
  12. string matchPattern = @"(?<=\s+pid:\s+)\b(\d+)\b(?=\s+)";
  13. foreach(Match match in Regex.Matches(outputTool, matchPattern))
  14. {
  15.     Process.GetProcessById(int.Parse(match.Value)).Kill();
  16. }
複製代碼
收藏收藏0 推0 噓0


把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分: 1鑰匙
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$
高級模式
B Color Image Link Quote Code Smilies |上傳

廣告刊登意見回饋關於我們管群招募本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-12-22 19:44

回頂部