C# 4.0:有没有办法检查 System.Diagnostics.Process.Start 中是否不存在应用程序
我想使用下面的代码打开任何文件类型:
System.Diagnostics.Process.Start(pathFile);
有没有办法检查系统应用程序是否不存在?
例如:pdf,本机没有acrobat reader。
我创建了一个 try catch,但是我对它不满意,我想模仿 Windows 打开文件的行为。它有一个搜索网络/手动搜索的选项。
try
{
System.Diagnostics.Process.Start(pathFile);
}
catch (System.ComponentModel.Win32Exception ex)
{
composite.ReadingError = ex.Message;
Console.WriteLine("error");
}
I want to open any file type by using the code below:
System.Diagnostics.Process.Start(pathFile);
Is there a way to check if system application not exist?
for example: pdf, the local machine has no acrobat reader.
I created a try catch, however I'm not satisfied with it, I want to imitate the behavior of windows in opening a file. It has an option of Searching the web / manual search.
try
{
System.Diagnostics.Process.Start(pathFile);
}
catch (System.ComponentModel.Win32Exception ex)
{
composite.ReadingError = ex.Message;
Console.WriteLine("error");
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用 PInvoke (FindExecutable (shell32 )):
You need to use PInvoke (FindExecutable (shell32)):
如果没有关联,它应该抛出一个您可以捕获的
Win32Exception
。请参阅此处:http://msdn.microsoft.com/en-us/library /53ezey2s.aspx 在例外部分。
If there is no association it should throw a
Win32Exception
that you could catch.See here: http://msdn.microsoft.com/en-us/library/53ezey2s.aspx in the exceptions section.