/// <summary> /// Removes single <see cref="ProgramVerb" /> that define the verb supported by this ProgID. /// </summary> /// <param name="verb">Single <see cref="ProgramVerb" /> that contains supported verb.</param> public void RemoveVerb(ProgramVerb verb) { if (verb == null) { throw new NullReferenceException(); } RemoveVerb(verb.Name); }
/// <summary> /// Adds single <see cref="ProgramVerb" /> that define the verb supported by this ProgID. /// </summary> /// <param name="verb">Single <see cref="ProgramVerb" /> that contains supported verb.</param> protected void AddVerbpublic(ProgramVerb verb) { var root = Registry.ClassesRoot; var openSubKey = root.OpenSubKey(ProgId); if (openSubKey != null) { var key = openSubKey.OpenSubKey("shell", true); if (key == null) { var registryKey = root.OpenSubKey(ProgId, true); if (registryKey != null) { key = registryKey.CreateSubKey("shell"); } } if (key != null) { var tmpkey = key.OpenSubKey(verb.Name, true) ?? key.CreateSubKey(verb.Name); key = tmpkey; if (key != null) { tmpkey = key.OpenSubKey("command", true) ?? key.CreateSubKey("command"); if (tmpkey != null) { tmpkey.Close(); } key.Close(); } } } root.Close(); ShellNotification.NotifyOfChange(); }
/// <summary> /// Creates actual Programmatic Identifier key in registry that is used by other extensions. /// </summary> /// <param name="description">Friendly description of file type.</param> /// <param name="editFlags"><see cref="EditFlags" /> for program file type.</param> /// <param name="verb">Single <see cref="ProgramVerb" /> that contains supported verbs.</param> /// <returns><see cref="ProgramAssociationInfo" /> instance referring to specified extension.</returns> public ProgramAssociationInfo Create(string description, EditFlags editFlags, ProgramVerb verb) { return(Create(description, editFlags, new[] { verb })); }
/// <summary> /// Creates actual Programmatic Identifier key in registry that is used by other extensions. /// </summary> /// <param name="verb">Single <see cref="ProgramVerb" /> that contains supported verb.</param> /// <returns><see cref="ProgramAssociationInfo" /> instance referring to specified extension.</returns> public ProgramAssociationInfo Create(ProgramVerb verb) { return(Create(string.Empty, EditFlags.None, new[] { verb })); }
/// <summary> /// Adds single <see cref="ProgramVerb" /> that define the verb supported by this ProgID. /// </summary> /// <param name="verb">Single <see cref="ProgramVerb" /> that contains supported verb.</param> public void AddVerb(ProgramVerb verb) { AddVerbpublic(verb); }
/// <summary> /// Adds single <see cref="ProgramVerb" /> that define the verb supported by this ProgID. /// </summary> /// <param name="verb">Single <see cref="ProgramVerb" /> that contains supported verb.</param> protected void AddVerbpublic(ProgramVerb verb) { var root = Registry.ClassesRoot; var openSubKey = root.OpenSubKey(ProgId); if (openSubKey != null) { var key = openSubKey.OpenSubKey("shell", true); if (key == null) { var registryKey = root.OpenSubKey(ProgId, true); if (registryKey != null) key = registryKey.CreateSubKey("shell"); } if (key != null) { var tmpkey = key.OpenSubKey(verb.Name, true) ?? key.CreateSubKey(verb.Name); key = tmpkey; if (key != null) { tmpkey = key.OpenSubKey("command", true) ?? key.CreateSubKey("command"); if (tmpkey != null) { tmpkey.Close(); } key.Close(); } } } root.Close(); ShellNotification.NotifyOfChange(); }
/// <summary> /// Sets an array of <see cref="ProgramVerb" /> that define the verbs supported by this ProgID /// </summary> /// <param name="verbs">Array of <see cref="ProgramVerb" /> that contains verbs to be set.</param> protected void SetVerbs(ProgramVerb[] verbs) { if (!Exists) throw new Exception("Extension does not exist"); var root = Registry.ClassesRoot; var key = root.OpenSubKey(ProgId, true); if (key != null) { var tmpKey = key.OpenSubKey("shell", true); if (tmpKey != null) key.DeleteSubKeyTree("shell"); tmpKey = key.CreateSubKey("shell"); foreach (var verb in verbs) { if (tmpKey != null) { var newVerb = tmpKey.CreateSubKey(verb.Name.ToLower()); if (newVerb != null) { var command = newVerb.CreateSubKey("command"); if (command != null) { command.SetValue(string.Empty, verb.Command, RegistryValueKind.ExpandString); command.Close(); } } if (newVerb != null) newVerb.Close(); } } } ShellNotification.NotifyOfChange(); }
/// <summary> /// Creates actual Programmatic Identifier key in registry that is used by other extensions. /// </summary> /// <param name="description">Friendly description of file type.</param> /// <param name="editFlags"><see cref="EditFlags" /> for program file type.</param> /// <param name="verbs">Array of <see cref="ProgramVerb" /> that contains supported verbs.</param> /// <returns><see cref="ProgramAssociationInfo" /> instance referring to specified extension.</returns> public ProgramAssociationInfo Create(string description, EditFlags editFlags, ProgramVerb[] verbs) { if (Exists) Delete(); Create(); if (description != string.Empty) Description = description; if (editFlags != EditFlags.None) EditFlags = editFlags; Verbs = verbs; return this; }
/// <summary> /// Removes single <see cref="ProgramVerb" /> that define the verb supported by this ProgID. /// </summary> /// <param name="verb">Single <see cref="ProgramVerb" /> that contains supported verb.</param> public void RemoveVerb(ProgramVerb verb) { if (verb == null) throw new NullReferenceException(); RemoveVerb(verb.Name); }
/// <summary> /// Creates actual Programmatic Identifier key in registry that is used by other extensions. /// </summary> /// <param name="description">Friendly description of file type.</param> /// <param name="editFlags"><see cref="EditFlags" /> for program file type.</param> /// <param name="verb">Single <see cref="ProgramVerb" /> that contains supported verbs.</param> /// <returns><see cref="ProgramAssociationInfo" /> instance referring to specified extension.</returns> public ProgramAssociationInfo Create(string description, EditFlags editFlags, ProgramVerb verb) { return Create(description, editFlags, new[] {verb}); }
/// <summary> /// Creates actual Programmatic Identifier key in registry that is used by other extensions. /// </summary> /// <param name="description">Friendly description of file type.</param> /// <param name="verbs">Array of <see cref="ProgramVerb" /> that contains supported verbs.</param> /// <returns><see cref="ProgramAssociationInfo" /> instance referring to specified extension.</returns> public ProgramAssociationInfo Create(string description, ProgramVerb[] verbs) { return Create(description, EditFlags.None, verbs); }
/// <summary> /// Creates actual Programmatic Identifier key in registry that is used by other extensions. /// </summary> /// <param name="verbs">Array of <see cref="ProgramVerb" /> that contains supported verbs.</param> /// <returns><see cref="ProgramAssociationInfo" /> instance referring to specified extension.</returns> public ProgramAssociationInfo Create(ProgramVerb[] verbs) { return Create(string.Empty, EditFlags.None, verbs); }
/// <summary> /// Creates actual Programmatic Identifier key in registry that is used by other extensions. /// </summary> /// <param name="verb">Single <see cref="ProgramVerb" /> that contains supported verb.</param> /// <returns><see cref="ProgramAssociationInfo" /> instance referring to specified extension.</returns> public ProgramAssociationInfo Create(ProgramVerb verb) { return Create(string.Empty, EditFlags.None, new[] {verb}); }