无法更新Process变量

时间:2013-12-18 13:42:17

标签: c# google-chrome process

我正在尝试杀死进程,但我无法将值绑定到进程变量。这就是我的代码所得到的;

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;
    }

当我尝试杀死它时,浏览器为空,而我将一个进程名绑定到它,有没有人知道这个的原因?

1 个答案:

答案 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();
  }
}