Associate extension with c# exe

3205 ワード

Code as follow:
    public static class AssociateExtensionHelper
    {
        public static void CreateExtension(string extension, string commandPath)
        {
            string operationkeyName = "Do" + extension;
            var key = Registry.ClassesRoot.CreateSubKey(extension);
            key.SetValue(null, operationkeyName);

            var operationkey = Registry.ClassesRoot.CreateSubKey(operationkeyName);
            var defaultIcon = operationkey.CreateSubKey("DefaultIcon");
            defaultIcon.SetValue(null, "%SystemRoot%\\SysWow64\\imageres.dll,-103");

            var shellKey = operationkey.CreateSubKey("shell");
            var openKey = shellKey.CreateSubKey("Open");
            var commandKey = openKey.CreateSubKey("command");
            commandKey.SetValue(null, commandPath);
        }
    }

Call as this :
AssociateExtensionHelper.CreateExtension(".abc", @"E:\MyDemo\MyDemo\AssociateExtension\bin\Debug\AssociateExtension.exe %1");