/// <summary> /// Sets a value that indicates the filter component that is used to search for text within documents of this type. /// </summary> /// <param name="file"><see cref="FileAssociationInfo"/> that provides specifics of the extension to be changed.</param> /// <param name="persistentHandler">Guid of filter component.</param> protected void SetPersistentHandler(FileAssociationInfo file, Guid persistentHandler) { if (!file.Exists) { throw new Exception("Extension does not exist"); } if (persistentHandler == Guid.Empty) { return; } this.registryWrapper.Write(file.extension + "\\" + PersistentHandler, string.Empty, persistentHandler); ShellNotification.NotifyOfChange(); }
/// <summary> /// Sets a value that determines if the file's extension will always be shown. /// </summary> /// <param name="value">Value that specifies if the file's extension should be always displayed.</param> protected void SetAlwaysShowExt(bool value) { if (!this.Exists) { throw new Exception("Extension does not exist"); } if (value) { registryWrapper.Write(this.progId, "AlwaysShowExt", string.Empty); } else { registryWrapper.Delete(this.progId, "AlwaysShowExt"); } 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 (!this.Exists) { throw new Exception("Extension does not exist"); } RegistryKey root = Registry.ClassesRoot; RegistryKey key = root.OpenSubKey(this.progId, true); RegistryKey tmpKey = key.OpenSubKey("DefaultIcon", true); if (tmpKey != null) { key.DeleteSubKeyTree("DefaultIcon"); } tmpKey = key.CreateSubKey("DefaultIcon"); tmpKey = key.OpenSubKey("shell", true); if (tmpKey != null) { key.DeleteSubKeyTree("shell"); } tmpKey = key.CreateSubKey("shell"); foreach (ProgramVerb verb in verbs) { RegistryKey newVerb = tmpKey.CreateSubKey(verb.Name.ToLower()); RegistryKey command = newVerb.CreateSubKey("command"); command.SetValue(string.Empty, verb.Command, RegistryValueKind.ExpandString); command.Close(); newVerb.Close(); } ShellNotification.NotifyOfChange(); }