C#将我的应用程序设置为默认应用程序

时间:2010-11-02 11:55:22

标签: c# text editor default

我是一名新手程序员,并根据自己的需要开发了一个记事本替换应用程序(具有更多功能)。当我双击.txt文件(或可自定义的扩展名,如.abc)时,我希望文件在我的应用程序中运行,就像记事本一样。我阅读了有关程序的文件关联,但我没有得到太多。

有人能指出我会怎么做吗?请给我一些想法,我真的想这样做,并为我的用户提供一个选项,将应用程序设置为默认文本编辑器。非常感谢帮助。

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

如果您使用单击一次部署(即在VS中为Windows exe“发布”),则可以指定那里的文件关联,它将为您完成所有操作。但不能保证它优先于记事本。对于那个,您可能需要一个合适的安装程序......

MSDN shows how

答案 2 :(得分:0)

你去了

 //Auto set default program to open edi format file
        try
        {
            string currentSavedDefault = "";
            using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"filetype\shell\open\command"))
            {
                if (key != null)
                {
                    currentSavedDefault = key.GetValue("").ToString();
                }
            }
            String myExecutable = Assembly.GetEntryAssembly().Location;
            if (currentSavedDefault != myExecutable)
            {
                Registry.ClassesRoot.CreateSubKey(".type").SetValue("", "filetype", Microsoft.Win32.RegistryValueKind.String);
                Registry.ClassesRoot.CreateSubKey(@"filetype\shell\open\command").SetValue("", myExecutable + " %1", Microsoft.Win32.RegistryValueKind.String);
            }
        }
        catch (Exception)
        {
        }