2014-02-09 1 views
-4

Мне было написано несколько кодов, когда мои приложения все еще работают, он закроет другой (пример блокнота), даже блокнот снова откроется, он снова закроется, я попробовал, но это закрывается при запуске моих приложений, когда мои приложения работают, и я открываю блокнот, блокнот не закрывается. здесьC# - Завершить другой процесс, когда мой еще работает

foreach (Process Proc in Process.GetProcesses()) 
      if (Proc.ProcessName.Equals("notepad")) 
       Proc.Kill(); 
+2

Возможно, процесс не называется записной книжкой? Какая отладка вы делали? –

+0

это работает, если я запускаю блокнот сначала n, тогда я запускаю свое приложение, но если я запускаю свои приложения сначала, я запускаю блокнот, он не работает. – oebanez

+1

В зависимости от того, где этот цикл 'foreach' находится в вашей программе, он будет запускаться только один раз , Вам нужно опубликовать лучшее объяснение вашей проблемы. В частности, «Какова конкретная проблема, с которой вы сталкиваетесь», «Что вы пытаетесь выполнить», и, наконец, отправьте код * вокруг * этого 'foreach', чтобы мы могли видеть, как он называется. –

ответ

3

Ваш код убивает процессы, выполняемые во время выполнения кода. Как только ваш код завершит выполнение, он больше не оказывает никакого влияния. Он не будет убивать процессы, которые запускаются после завершения вашего кода.

Возможно, вам нужно определить, когда начнется целевой процесс, а затем убейте его. Вы можете сделать это путем опроса, который довольно неэлегантен. Чтобы избежать опроса, вам нужен WMI. Существует много примеров того, как это сделать. Например: How to detect a process start & end using c# in windows?

+0

Я поеду с таймером, но thx – oebanez

+0

Это, очевидно, зависит от вас, как вы решаете свою проблему. –