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

本文关键字:应用程序 终止 何使用 | 更新日期: 2023-09-27 18:07:58

我的情况是:我正在使用c#并打开多个pdf文件。在查看taskmanager时,我看到我打开的每个新文件都显示在应用程序选项卡中,而只有2个adobe32进程。如果我按名称做getprocesses,我看到两个进程,如果我向下钻取它们,我能够识别我通过主窗口标题名称打开的pdf之一,但我无法找到另一个。我的目标是能够终止我选择的任何窗口,而不必关闭它们。

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

您需要对您的窗口句柄id使用p - invoke:

CloseWindow:

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

或DestroyWindow:

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

我有一个解决方案,但这取决于是否有如何打开PDF文件的要求。在没有看到你在做什么的情况下,我现在只能做一些假设。无论如何,这个方法不涉及使用p-invoke来丢弃打开的窗口。

如果你调用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();