zoukankan      html  css  js  c++  java
  • FileRegistrationHelper

    FileRegistrationHelper

     public class FileRegistrationHelper 
       
    { 
           
    public static void SetFileAssociation(string extension, string progID) 
           
    { 
               
    // Create extension subkey 
               
    SetValue(Registry.ClassesRoot, extension, progID); 
     
               
    // Create progid subkey 
               
    string assemblyFullPath = System.Reflection.Assembly.GetExecutingAssembly().Location.Replace("/", @"\"); 
                StringBuilder sbShellEntry = new StringBuilder(); 
                sbShellEntry.AppendFormat("
    \"{0}\" \"%1\"", assemblyFullPath); 
               
    SetValue(Registry.ClassesRoot, progID + @"\shell\open\command", sbShellEntry.ToString()); 
               
    StringBuilder sbDefaultIconEntry = new StringBuilder(); 
                sbDefaultIconEntry
    .AppendFormat("\"{0}\",0", assemblyFullPath); 
               
    SetValue(Registry.ClassesRoot, progID + @"\DefaultIcon", sbDefaultIconEntry.ToString()); 
     
               
    // Create application subkey 
               
    SetValue(Registry.ClassesRoot, @"Applications\" + Path.GetFileName(assemblyFullPath), "", "NoOpenWith"); 
            } 
     
            private static void SetValue(RegistryKey root, string subKey, object keyValue) 
            { 
                SetValue(root, subKey, keyValue, null); 
            } 
            private static void SetValue(RegistryKey root, string subKey, object keyValue, string valueName) 
            { 
                bool hasSubKey = ((subKey != null) && (subKey.Length > 0)); 
                RegistryKey key = root; 
     
                try 
                { 
                    if (hasSubKey) key = root.CreateSubKey(subKey); 
                    key.SetValue(valueName, keyValue); 
                } 
                finally 
                { 
                    if (hasSubKey && (key != null)) key.Close(); 
                } 
            } 
        } 

     

     

     

    string extension = ".def"; 
               
    string title = "something here"; 
               
    string extensionDescription = "some description"; 
               
    FileRegistrationHelper.SetFileAssociation( 
                  extension
    , title + "." + extensionDescription); 

  • 相关阅读:
    创业公司必备的5款团队协作工具
    测试人必备:国内外最好用的6款Bug跟踪管理系统
    BUG克星:几款优秀的BUG跟踪管理软件
    千亿级SaaS市场:企业级服务的必争之地
    如何使用iClap创建普通批注
    详析手游圈从业人员必须知道的行业术语
    企业级服务元年:iClap高效解决手游更新迭代问题
    手游精品时代,iClap参会TFC高效解决手游问题
    全新办公方式,iClap引领企业级服务新浪潮
    vue自学小demo----前端
  • 原文地址:https://www.cnblogs.com/hdl217/p/1872983.html
Copyright © 2011-2022 走看看