RegisterFunction z

8480 단어 function
#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

좋은 웹페이지 즐겨찾기