whitefox 發表於 2023-7-8 19:35:50

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

查詢被什麼程式占住需要使用軟體的工具 Handle.exe
按此下載 Handle v5.0

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

Process pTool = new Process();
pTool.StartInfo.FileName = "handle.exe";
pTool.StartInfo.Arguments = TestFile + " /accepteula";
pTool.StartInfo.UseShellExecute = false;
pTool.StartInfo.RedirectStandardOutput = true;
pTool.Start();           
pTool.WaitForExit();
string outputTool = pTool.StandardOutput.ReadToEnd();

// 使用正則表示篩選出占住程式的 PID
string matchPattern = @"(?<=\s+pid:\s+)\b(\d+)\b(?=\s+)";
foreach(Match match in Regex.Matches(outputTool, matchPattern))
{
    Process.GetProcessById(int.Parse(match.Value)).Kill();
}
頁: [1]
查看完整版本: [C#] 檢測檔案被什麼程式占住並關閉占住的程式