我正在尝试杀死进程,但我无法将值绑定到进程变量。这就是我的代码所得到的;
URL = (string)result[1];
Process browser = Process.Start(@"chrome.exe","http:\\www.youtube.com/watch?v=" + URL);
Audio.SetApplicationVolume(APP, 15);
resultaat = (string)result[2];
Videolengte = Convert.ToInt32(resultaat);
Tijd = Videolengte;
Tijd = 10;
System.Threading.Thread.Sleep(Tijd);
browser = GetWindowProcess((string)result[3]);
//wanneer timer van het nummer weer klaar is, volgende dingen uitvoeren.
Audio.SetApplicationVolume(APP, 15);
browser.Kill();
deleteRow();
GetWindowProcess
private Process GetWindowProcess(string windowTitle)
{
foreach (var proc in Process.GetProcessesByName("chrome"))
{
if (proc.MainWindowTitle.IndexOf(windowTitle, StringComparison.OrdinalIgnoreCase) > 0)
{
return proc;
}
}
return null;
}
当我尝试杀死它时,浏览器为空,而我将一个进程名绑定到它,有没有人知道这个的原因?
答案 0 :(得分:0)
看起来您的问题出在GetWindowProcess中。当您执行proc.MainWindowTitle
时,它会为每个进程返回一个空字符串 - 可能是因为Chrome窗口没有标题,并且标签不被视为“窗口”
看看其他地方同一问题的答案。看起来好像至少好几个月才这样......
https://stackoverflow.com/a/16958798/2505574
如果根据您对此答案的评论(不是您在问题中说的话),您想要杀死所有 Chrome进程,那么你只需要编写一个迭代进程并杀死进程的方法:
public void KillChromeProcesses()
{
foreach (var proc in Process.GetProcessByName("chrome"))
{
proc.Kill();
}
}