Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#更改默认程序以打开任何Word文档?_C#_Wpf - Fatal编程技术网

如何使用C#更改默认程序以打开任何Word文档?

如何使用C#更改默认程序以打开任何Word文档?,c#,wpf,C#,Wpf,在我的WPF应用程序中,我希望在Word 2007或更高版本中打开Word文档,无论打开Word文档的默认程序是否为Word 2007。即使打开Word文档的默认程序是open Office,我也希望在Word 2007+中打开它们 我该怎么做呢?这与WPF没有任何关系 现在需要将Word安装的位置或其所在文件夹添加到Path环境变量中 假设您的文件名变量名为fileName,并且winword.exe的完整路径存储在wordPath中(或winword.exe位于路径中),则需要执行以下操作-

在我的WPF应用程序中,我希望在Word 2007或更高版本中打开Word文档,无论打开Word文档的默认程序是否为Word 2007。即使打开Word文档的默认程序是open Office,我也希望在Word 2007+中打开它们


我该怎么做呢?

这与WPF没有任何关系

现在需要将Word安装的位置或其所在文件夹添加到Path环境变量中

假设您的文件名变量名为fileName,并且winword.exe的完整路径存储在wordPath中(或winword.exe位于路径中),则需要执行以下操作-

ProcessStartInfo startInfo = new ProcessStartInfo
                                         {
                                             CreateNoWindow = false,
                                             Arguments = fileName,
                                             FileName = wordPath
                                         };
Process wordProcess = Process.Start(startInfo);
注意1-您的文件名直接传递给Word。如果路径包含空格,则必须将其包装为“”。差不多

fileName = String.Format("{0}{1}{2}", 
                                fileName.StartsWith("\"") ? "" : "\"", 
                                fileName,
                                fileName.EndsWith("\"") ? "" : "\"");
注2-Word有其他命令行参数用于不同的用途,其他用途请参见此处