在C#中创建自定义文件扩展名(Windows 7)

时间:2014-02-26 08:11:14

标签: c# windows visual-studio-2012 windows-7 registry

我正在尝试创建一个与我的应用程序相关联的文件扩展名,例如当用户双击该文件时,使用.ztr直接使用我的应用程序生成任何文件。 我使用的是VS2012,C#,Windows 7 我确实模拟了这个例子here

确实有一些修改,例如修复导入Dll也失败了。

    public static void Register   (string Ext,string Program,string Ico)
    {
        string prog = Path.GetFileName(Program);
        RegistryKey file = Registry.CurrentUser.CreateSubKey("Software\\Classes\\"+Ext);//.osa
        RegistryKey App = Registry.CurrentUser.CreateSubKey("Software\\Classes\\Applications\\" + prog);//osama.exe
        RegistryKey Link = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\" + Ext);//.osa

        file.CreateSubKey("DefultIcon").SetValue("", Ico);
        file.CreateSubKey("PerceivedType").SetValue("","Text");

        App.CreateSubKey("shell\\open\\command").SetValue("", "\"" + Application.ExecutablePath + "\"%1");
        App.CreateSubKey("shell\\edit\\command").SetValue("", "\"" + Application.ExecutablePath + "\"%1");
        App.CreateSubKey("DefultIcon").SetValue("", Ico);

        //There is Change here you 
        Link.CreateSubKey("UserChoice").SetValue("Progid", Program);
        Invoke.SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
    }

0 个答案:

没有答案