2013-12-18 6 views
1

프로세스를 죽이려고하는데 프로세스 변수에 값을 바인딩 할 수 없습니다. 이것이 내가 작성한 코드이다.프로세스 변수를 업데이트 할 수 없습니다.

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

그것은 사람이의 원인을 알 수 있을까, 나는 그것에 processname를 바인더 제본 동안 내가 죽일 때 브라우저가 null라고?

+0

당신은 작업 관리자에서 chrome.exe의 참조 마세요, 당신이 모든 크롬 프로세스를 죽이고 싶어, 당신은 단지 과정을 반복 처리 그들을 죽이는 방법을 쓸 필요가? –

+0

예, 실행 중입니다. – joostmakaay

+0

그리고 GetWindowProcess 란 무엇입니까? 나는 그것을 봤고 아무 것도 발견하지 못했습니다. –

답변

0

문제가 GetWindowProcess 내부에있는 것 같습니다. proc.MainWindowTitle을 수행하면 각 프로세스마다 빈 문자열이 반환됩니다. 아마도 Chrome 창에 제목이없고 탭이 '창'으로 간주되지 않기 때문일 수도 있습니다.

이 질문에 대한 답을 다른 곳에서 살펴보십시오. 그것은 적어도 좋은 몇 개월 동안이 방법이었다 것처럼 (당신이 당신의 질문에 무슨 말을하지입니다)이 답변에 대한 귀하의 의견에 따라,

https://stackoverflow.com/a/16958798/2505574

하면 ... 보인다

public void KillChromeProcesses() 
{ 
    foreach (var proc in Process.GetProcessByName("chrome")) 
    { 
    proc.Kill(); 
    } 
} 
+0

하지만 변경된 것으로 인해 다시 작동하지 않습니다. – joostmakaay

+0

크롬이 코드 작동을 멈추게하는 것으로 변경되었을 수도 있습니다. 다른 방법을 찾으면 답을 업데이트 할 것입니다. –

+0

하지만 그건 내 문제가 아니에요, 난 그냥 크롬 탭을 모두 죽이고 싶어, 창 제목은 정보가 열리는 것들에 대한 여기에 있습니다. – joostmakaay

관련 문제