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. \n\"" + nl.Message + "\"");

                System.Windows.Forms.MessageBox.Show("There was a problem registering this dll: SWattr is null.\n\"" + nl.Message + "\"");

            }



            catch (System.Exception e)

            {

                Console.WriteLine(e.Message);



                System.Windows.Forms.MessageBox.Show("There was a problem registering the function: \n\"" + 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: \n\"" + 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: \n\"" + e.Message + "\"");

            }

        }



        #endregion

 

你可能感兴趣的:(function)