[英]Alternative to Process.Start()
我刚刚完成对文档存储解决方案的编码,我遇到了以下问题。 在 UI 中,用户可以按下一个按钮来打开一个文件:
try
{
Process.Start(file);
}
catch (Exception ex)
{
//Error handling code
}
我的问题是,如果用户没有与文件类型相关联的应用程序,则会引发 componentmodel 异常并显示一条消息。
我宁愿做的是在这种情况下弹出“打开方式”对话框,是否有我缺少的方法调用?
您可以在调用 Process.Start 之前检查注册表以查看是否有与该文件类型关联的应用程序。 或者,您可以捕获 componentmodel 异常并从那里打开 open with 对话框。
有关使用“打开方式”对话框的信息,请参阅本文
http://www.codeproject.com/KB/shell/openwith.aspx
我会将 Process.Start 调用放在 try 语句中,然后在 catch 中显示“打开方式”。
Process.Start("explorer.exe",file)
也可能值得一试。
解决了我在 XP、Vista 和 7 上打开 URL 的问题
不,没有。 我认为你目前的方法是最好的。 只需尝试运行程序,然后在出现异常的情况下,由于文件没有关联,打开一个对话框,允许他们选择一个文件来运行程序。
如果您为 ASP.NET 构建它,请使用下面的代码来避免“访问被拒绝”错误
Response.Redirect(url);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.