Process.Start并不总是有效

时间:2015-03-04 07:58:46

标签: vb.net process.start

我创建了一个协议生成工具,它从一个websource读取一些数据,允许用户过滤一些字段,并根据给定的filterdata生成一个协议。该协议生成为word文档,在向用户显示之前,在多个层上进行多次编辑。

对于某些用户来说:

 Process.Start(pathtowordfile)

不会打开Word,对于其他人来说它运行正常。

更奇怪的是:如果用户尝试在第一次打开时生成协议。如果他们更改其中一个过滤器并再次生成,则文件无法打开。但它生成正确,您可以手动打开它。

我们在所有计算机上使用Windows 7,一般情况下,用户在计算机上没有管理员权限。

还有其他选择吗?
Process.Start()

2 个答案:

答案 0 :(得分:1)

不确定代码有时可以如何工作,但我认为关键位是确保在尝试Process.Start文件不是可执行文件时设置UseShellExecute = true。 https://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.useshellexecute%28v=vs.110%29.aspx

我没有在很长一段时间内查看它,但最后我检查了shell执行依赖于Word应用程序以正确注册DDE,因此Windows知道如何处理.doc(x)文件。 Word可能无法“正确”安装。

答案 1 :(得分:0)

在尝试varios之后,包括Wonko的提示,我决定使用interop.Word.Wordapplication来显示文档。它没有解释为什么process.start没有完成工作,但无论如何,现在每个用户都很高兴^^