我正在使用PDFSharp创建PDF。在他们的例子中,他们保存一个PDF,然后他们开始一个过程来选择你的查看器来打开它。它看起来像这样:检测.NET上的Adobe Acrobat Reader是否正在运行
document.Save(fileName);
Process.Start(fileName);
所以在我的测试中,我意识到,如果Acrobat Reader软件已经打开,我得到一个I/O异常,因为进程已经运行。所以我试着关注这个帖子: Detecting a Process is already running in windows using C# .net
关于检测过程。所以我改变了上面的代码:
document.Save(fileName);
if (System.Diagnostics.Process.GetProcessesByName("AcroRd32.exe").Length == 0)
{
Process.Start(fileName);
}
所以我有两个问题。
1)这不起作用。长度总是0,所以我想知道我是否返回了错误的流程,或者找不到流程。当我查看任务管理器时,AcroRd32.exe是正在运行的进程的名称。
2)有没有更好的方法来做到这一点?看起来好像我将这个过程硬编码到代码中,我不确定是否有更好的方法来捕获其他版本的Acrobat(如有64位版本)或其他PDF查看器。
对不起,如果这是老问题。这个.NET对我来说很新。谢谢。
您可以通过检查注册表来查看此链接http://stackoverflow.com/questions/969027/check-adobe-reader-is-installed-c – MethodMan
>进程名称是进程的友好名称,例如作为Outlook,它不包括.exe扩展名或路径。 http://msdn.microsoft.com/en-us/library/z3w4xdc9.aspx –
CPU将在50%或更多。 [对不起,也忍不住] –