一般来说,只要设置ProcessStartInfo.CreateNoWindow = true; 即可。
如果还是显示,则继续设置 ProcessStartInfo.WindowStyle= ProcessWindowStyle.Hidden;
下面代码是用 handle.exe 来关闭占用文件的程序代码(注意关闭的文件的文件名称不能有空格),仅供参考
private void Button_Click(object sender, RoutedEventArgs e)
{
string fileName = @"1.docx";//要检查被那个进程占用的文件
Process tool = new Process();
tool.StartInfo.WindowStyle= ProcessWindowStyle.Hidden;
tool.StartInfo.CreateNoWindow = true;
tool.StartInfo.FileName = "handle.exe";
tool.StartInfo.Arguments = fileName + " /accepteula";
tool.StartInfo.UseShellExecute = false;
tool.StartInfo.RedirectStandardOutput = true;
tool.Start();
tool.WaitForExit();
string outputTool = tool.StandardOutput.ReadToEnd();
string matchPattern = @"(?<=\s+pid:\s+)\b(\d+)\b(?=\s+)";
foreach (Match match in Regex.Matches(outputTool, matchPattern))
{
Process.GetProcessById(int.Parse(match.Value)).Kill();
}
}
handle.exe 的下载地址 https://docs.microsoft.com/en-us/sysinternals/downloads/handle
翻译 朗读 复制 正在查询,请稍候…… 重试 朗读 复制 复制 朗读 复制 via 百度翻译 译
翻译 朗读 复制 正在查询,请稍候…… 重试 朗读 复制 复制 朗读 复制 via 百度翻译 译