无法终止以编程方式启动的进程

时间:2019-06-16 05:41:22

标签: c# .net winapi process

我已经通过命令行启动ExifTool

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "exiftool.exe";
startInfo.Arguments = "-m -stay_open True -@ " + tempDirectory + "\\commands.txt";
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;

Process processTemp = new Process();
processTemp.StartInfo = startInfo;
processTemp.EnableRaisingEvents = true;

processTemp.Start();

我正在将args写入文件commands.txt

在尝试再次启动该程序时(在程序重新启动时),exiftool仍然打开,并且我不断收到此异常消息

  

该进程无法访问文件'C:\ Users \ Vyshak \ AppData \ Local \ Temp \ myprog \ commands.txt',因为该文件正在被另一个进程使用

因此,我尝试终止exiftool进程(也尝试不使用.exe)

foreach (var process in Process.GetProcessesByName("exiftool.exe"))
{
    process.Kill();
}

但是循环永远不会被打到。我还与进程资源管理器进行了检查,以确认什么锁定了文件。另外,我在任务管理器中找不到exiftool。

0 个答案:

没有答案