Registry File Association : Registry « Development Class « C# / C Sharp

Home
C# / C Sharp
1.2D Graphics
2.Class Interface
3.Collections Data Structure
4.Components
5.Data Types
6.Database ADO.net
7.Date Time
8.Design Patterns
9.Development Class
10.Event
11.File Stream
12.Generics
13.GUI Windows Form
14.Internationalization I18N
15.Language Basics
16.LINQ
17.Network
18.Office
19.Reflection
20.Regular Expressions
21.Security
22.Services Event
23.Thread
24.Web Services
25.Windows
26.Windows Presentation Foundation
27.XML
28.XML LINQ
C# / C Sharp » Development Class » RegistryScreenshots 
Registry File Association
     

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Win32;
using System.Reflection;

namespace SynoManager.Utils
{
    public static class FileAssociation
    {
        public static bool DoesFileAssociationExists(string extension)
        {
            RegistryKey classes = GetClasses();
            RegistryKey extensionKey = classes.OpenSubKey(extension);
            return (extensionKey != null);
        }

        /// <summary>
        /// Create a new file association
        /// </summary>
        /// <param name="extension">Extension of the file type, including the seperator) (ie: ".torrent")</param>
        /// <param name="key">File Type Key (can be referenced to create multiple extensions for one file type)</param>
        /// <param name="description">Description for the file type</param>
        /// <param name="path">Path (ie. '"C:\Executable.exe" "%1"')</param>
        public static void CreateFileAssociation(string extension, string key, string description, string path)
        {
            RegistryKey classes = GetClasses();
            RegistryKey extensionKey = classes.CreateSubKey(extension);
            extensionKey.SetValue(null, key);

            RegistryKey typeKey = classes.CreateSubKey(key);
            typeKey.SetValue(null, description);

            RegistryKey shellKey = typeKey.CreateSubKey("shell");
            RegistryKey shellOpenKey = shellKey.CreateSubKey("open");
            RegistryKey shellOpenCommandKey = shellOpenKey.CreateSubKey("command");
            shellOpenCommandKey.SetValue(null, path);
        }

        private static RegistryKey GetClasses()
        {
            return Registry.ClassesRoot;
            RegistryKey currentUser = Registry.CurrentUser;
            RegistryKey software = currentUser.OpenSubKey("Software");
            return software.OpenSubKey("Classes");
        }

        public static void AssociateTorrents()
        {
            string path = String.Format("\"{0}\" \"%1\"", Assembly.GetEntryAssembly().Location);
            CreateFileAssociation(".torrent","TorrentFile""BitTorrent Download File", path);
        }

        public static void AssociateNZB()
        {
            string path = String.Format("\"{0}\" \"%1\"", Assembly.GetEntryAssembly().Location);
            CreateFileAssociation(".nzb""NZBFile""NZB Download File", path);
        }
    }
}

   
    
    
    
    
  
Related examples in the same category
1.Registry.LocalMachine
2.Write a Text and DWord Value to the Registry
3.Enumerating Registry Keys
4.Retrieve the CPU Type and Speed from the Registry
5.Use GetValue and SetValue to get and save value to Registry
6.Get the Registry key found for CurrentUser
7. Accessing the Registry
8.Open a SubKey in Registry
9.Get Registry value Get Registry value
10.Check Registry to see if it is installed
11.Get/Set User Registry
12.Copy Registry
13.Registry Utils
14.Retrieves any Registry value that uses the REGBINARY data type.
15.Writes a Registry value to the Registry.
16.Get IIS version
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.