0

我知道如果我写 System.Diagnostics.Process.Start("notepad.exe", "text.txt"); 某个文件将在记事本中打开。我想在记事本中打开所有具有特定扩展名的文件,例如 .xml。我有一个用 C# 制作的程序,该程序可以浏览文件,如果我双击它们,它们将打开默认设置的程序窗口。现在我不想更改该默认程序,我只想编写一些代码以使用记事本打开所有 .xml 程序(仅在程序打开时)

4

3 回答 3

3

There is no such a direct way to do it, a work ground is Whenever you start your application, update the registry "I think something under HKEY_CLASSES_ROOT" to open that file extension "xml" with the program you want "notepad". before your program exit reassign that default program. However if your program doesn't successfully terminated, the default will be as you set it before.

于 2011-08-03T10:35:55.723 回答
2

您可以通过执行这些步骤来实现此目的,但是要使这些步骤起作用,您应该有权访问注册表

  1. 首先获取当前机器中 xml 文件的默认应用程序, 并将其存储在应用程序启动时的全局变量中(即通常是在应用程序的主窗体加载时)
  2. 然后将注册表中 xml 文件的默认应用程序更改为记事本或您选择的任何其他应用程序
  3. 现在您已将记事本设置为打开 XML 文件的默认应用程序
  4. 退出应用程序时,请确保您将存储在全局变量中的默认应用程序从第一步重置到注册表
于 2011-08-03T10:39:19.043 回答
0

是的,我有点解决它。所以我选择了打开文件时的路径,文件名,但只有最后 4 个字符,如果最后 4 个字符是“.xml”,那么我写了 System.Diacnostics.Process.Start("notepad.exe" ,路径文件);

有效。

于 2011-08-05T05:04:50.360 回答