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
  • 相关阅读:
    Linux下安装mysql5.7
    springcloud alibaba-sentinel流控规则简介
    springcloud alibaba-sentinel初始化
    springcloud alibaba-sentinel下载安装和运行
    Python内置函数
    Python生成器
    Python解析式
    Python模块-----日期模块
    Python内置数据结构----字典
    Linux配置免密登录
  • 原文地址:https://www.cnblogs.com/zeroone/p/3648350.html
Copyright © 2011-2022 走看看