2013-01-21 53 views
3

下面是简单的程序:Process.Close()不关闭程序

class Program { 

    static void Main(string[] args) { 

     Process pr = new Process(); 
     ProcessStartInfo prs = new ProcessStartInfo(); 
     prs.FileName = @"notepad.exe"; 
     pr.StartInfo = prs; 
     pr.EnableRaisingEvents = true; 
     pr.Start(); 

     Thread.Sleep(2000); 

     pr.Close(); //how do I change this to close notepad 

     Console.WriteLine("press [enter] to exit"); 
     Console.ReadLine(); 
    } 
} 

如何改变这种做法,记事本将关闭?

+0

Process.Close()并不意味着放弃进程 - 它只是意味着在进程和相关资源上释放您的“本地”视图。 – MethodMan

+0

@DJKRAZE ...我知道......这就是为什么我问这个问题! – whytheq

+0

你有工作的答案,你有点迟了你的回应.. :) – MethodMan

回答

1

尝试用Process.CloseMainWindow()方法代替。

通过向其主窗口发送关闭消息来关闭具有用户界面的进程。

试试这个;

Process pr = new Process(); 
ProcessStartInfo prs = new ProcessStartInfo(); 
prs.FileName = @"notepad.exe"; 
pr.StartInfo = prs; 
pr.EnableRaisingEvents = true; 
pr.Start(); 

Thread.Sleep(2000); 

pr.CloseMainWindow(); 
pr.Close(); 

Console.WriteLine("press [enter] to exit"); 
Console.ReadLine(); 
+0

+1像往常一样感谢您的帮助 – whytheq