zoukankan      html  css  js  c++  java
  • RegisterFunction z

    #region SolidWorks Registration
    [ComRegisterFunctionAttribute]
            public static void RegisterFunction(Type t)
            {
                #region Get Custom Attribute: SwAddinAttribute
                SwAddinAttribute SWattr = null;
                Type type = typeof(SwAddin);
    
                foreach (System.Attribute attr in type.GetCustomAttributes(false))
                {
                    if (attr is SwAddinAttribute)
                    {
                        SWattr = attr as SwAddinAttribute;
                        break;
                    }
                }
    
                #endregion
    
                try
                {
                    Microsoft.Win32.RegistryKey hklm = Microsoft.Win32.Registry.LocalMachine;
                    Microsoft.Win32.RegistryKey hkcu = Microsoft.Win32.Registry.CurrentUser;
    
                    string keyname = "SOFTWARE\SolidWorks\Addins\{" + t.GUID.ToString() + "}";
                    Microsoft.Win32.RegistryKey addinkey = hklm.CreateSubKey(keyname);
                    addinkey.SetValue(null, 0);
    
                    addinkey.SetValue("Description", SWattr.Description);
                    addinkey.SetValue("Title", SWattr.Title);
    
                    keyname = "Software\SolidWorks\AddInsStartup\{" + t.GUID.ToString() + "}";
                    addinkey = hkcu.CreateSubKey(keyname);
                    addinkey.SetValue(null, Convert.ToInt32(SWattr.LoadAtStartup), Microsoft.Win32.RegistryValueKind.DWord);
                }
                catch (System.NullReferenceException nl)
                {
                    Console.WriteLine("There was a problem registering this dll: SWattr is null. 
    "" + nl.Message + """);
                    System.Windows.Forms.MessageBox.Show("There was a problem registering this dll: SWattr is null.
    "" + nl.Message + """);
                }
    
                catch (System.Exception e)
                {
                    Console.WriteLine(e.Message);
    
                    System.Windows.Forms.MessageBox.Show("There was a problem registering the function: 
    "" + e.Message + """);
                }
            }
    
    [ComUnregisterFunctionAttribute]
            public static void UnregisterFunction(Type t)
            {
                try
                {
                    Microsoft.Win32.RegistryKey hklm = Microsoft.Win32.Registry.LocalMachine;
                    Microsoft.Win32.RegistryKey hkcu = Microsoft.Win32.Registry.CurrentUser;
    
                    string keyname = "SOFTWARE\SolidWorks\Addins\{" + t.GUID.ToString() + "}";
                    hklm.DeleteSubKey(keyname);
    
                    keyname = "Software\SolidWorks\AddInsStartup\{" + t.GUID.ToString() + "}";
                    hkcu.DeleteSubKey(keyname);
                }
                catch (System.NullReferenceException nl)
                {
                    Console.WriteLine("There was a problem unregistering this dll: " + nl.Message);
                    System.Windows.Forms.MessageBox.Show("There was a problem unregistering this dll: 
    "" + nl.Message + """);
                }
                catch (System.Exception e)
                {
                    Console.WriteLine("There was a problem unregistering this dll: " + e.Message);
                    System.Windows.Forms.MessageBox.Show("There was a problem unregistering this dll: 
    "" + e.Message + """);
                }
            }
    
            #endregion
  • 相关阅读:
    [bzoj1251]序列终结者
    Codeforces #Round 406(Div.2)
    [3.23校内训练赛]
    [APIO2009]
    [APIO2016]
    [bzoj1901]动态区间k大
    [9018/1904]火星商店
    [bzoj3673/3674可持久化并查集加强版]
    [bzoj1297][SCOI2009]迷路
    [bzoj1218][HNOI2003]激光炸弹
  • 原文地址:https://www.cnblogs.com/zeroone/p/3648350.html
Copyright © 2011-2022 走看看