C# 用C语言在记事本中打开所有.xml文件

C# 用C语言在记事本中打开所有.xml文件,c#,file,notepad,C#,File,Notepad,我知道如果我写System.Diagnostics.Process.Start(“notepad.exe”、“text.txt”);某个文件将在记事本中打开。我想在记事本中打开所有扩展名为.xml的文件。我有一个用C#编写的程序,该程序可以浏览文件,如果我点击双击,它们将以默认设置的windows程序打开。现在,我不想更改默认程序,我只想编写一些代码,用记事本打开所有.xml程序(仅当程序打开时)没有这样直接的方法,一个工作基础是每当启动应用程序时,更新注册表“我想在HKEY_CLASSES_R

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

没有这样直接的方法,一个工作基础是每当启动应用程序时,更新注册表“我想在
HKEY_CLASSES_ROOT
下的某些东西”用你想要的“记事本”程序打开文件扩展名“xml”。在程序退出之前,请重新指定该默认程序。但是,如果您的程序没有成功终止,默认值将与您之前设置的相同。

没有这样直接的方法,工作基础是每当启动应用程序时,更新注册表“我想在
HKEY_CLASSES_ROOT
”下,用您想要的“记事本”程序打开文件扩展名“xml”。在程序退出之前,请重新指定该默认程序。但是,如果您的程序没有成功终止,默认值将与您之前设置的相同。

您可以通过以下步骤实现这一点,但要使这些步骤起作用,您应该可以访问注册表

  • 首先获取并在应用程序启动时将其存储在全局变量中(即,通常是在应用程序的主窗体加载时)
  • 然后
  • 现在,您已经将记事本设置为打开XML文件的默认应用程序
  • 退出应用程序时,请确保将存储在全局变量中的默认应用程序从第一步重置为注册表

  • 您可以通过以下步骤来实现这一点,但要使这些步骤起作用,您应该有权访问注册表

  • 首先获取并在应用程序启动时将其存储在全局变量中(即,通常是在应用程序的主窗体加载时)
  • 然后
  • 现在,您已经将记事本设置为打开XML文件的默认应用程序
  • 退出应用程序时,请确保将存储在全局变量中的默认应用程序从第一步重置为注册表

  • 是的,我有点解决了。因此,我采用了打开文件时的路径,文件名,但只有最后4个字符,如果最后4个字符是“.xml”,那么我编写了System.diagnostics.Process.Start(“notepad.exe”,pathtofile)


    成功了

    是的,我有点解决了。因此,我采用了打开文件时的路径,文件名,但只有最后4个字符,如果最后4个字符是“.xml”,那么我编写了System.diagnostics.Process.Start(“notepad.exe”,pathtofile)


    成功了

    你的意思是,当程序运行时,如果我在资源管理器中双击一个xml文件,它应该在记事本中打开?或者只有从应用程序打开的文件才能在记事本中打开?我不确定记事本能否支持多个打开的文件。是否要在多个记事本会话中打开所有xml文件?或者您想更改.xml默认的“open program”windows关联?听起来像是一种可怕的用户体验。这取决于用户的系统设置。您需要更改.xml文件扩展名中的默认程序。当然,任何未经我许可(除了自己的文件扩展名)执行此操作的程序都不会被我使用。你的意思是,当程序运行时,如果我在资源管理器中双击xml文件,它应该在记事本中打开?或者只有从应用程序打开的文件才能在记事本中打开?我不确定记事本能否支持多个打开的文件。是否要在多个记事本会话中打开所有xml文件?或者您想更改.xml默认的“open program”windows关联?听起来像是一种可怕的用户体验。这取决于用户的系统设置。您需要更改.xml文件扩展名中的默认程序。当然,任何未经我许可而执行此操作的程序(除了它自己的文件扩展名)都不会被我使用。