如何使用c#终止应用程序

时间:2013-04-06 00:37:43

标签: c# kill

这是我的情况:我正在使用c#并打开多个pdf文件。在观看taskmanager时,我看到我打开的每个新文件都显示在应用程序选项卡中,而只有2个adobe32进程。如果我按名称进行getprocesses,我会看到两个进程,如果我深入了解它们,我能够识别出我用主窗口标题名称打开的pdf之一,但是我无法找到其他。我的目标是能够终止我选择的任何一个窗口,而不必关闭它们。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您需要将P-Invoke与您的窗口句柄ID一起使用:

CloseWindow:

http://www.pinvoke.net/default.aspx/user32.closewindow

或DestroyWindow:

http://www.pinvoke.net/default.aspx/user32/DestroyWindow.html

答案 1 :(得分:0)

我有一个解决方案,但这取决于是否有关于如何打开PDF文件的要求。如果没有看到你在做什么,我只能在这一点做出假设。无论如何,这种方法不涉及使用p调用来删除打开的窗口。

如果您调用AcroRd32.exe,请使用/ n命令行开关并传递PDF文件的路径,然后它将为您打开的每个PDF文件打开一个新的AcroRd32.exe实例。可能有多种方法可以关闭某个PDF文档。

这是一个打开这两个文件的简单方法,因为你仍然可以访问pdfProcess1,你可以杀掉它:

Process pdfProcess1 = new Process();
pdfProcess1.StartInfo = new ProcessStartInfo("AcroRd32.exe", "/n" + Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "SomePDFDoc1.pdf"));
pdfProcess1.Start();

Process pdfProcess2 = new Process();
pdfProcess2.StartInfo = new ProcessStartInfo("AcroRd32.exe", "/n" + Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "SomePDFDoc2.pdf"));
pdfProcess2.Start();

pdfProcess1.Kill();