private static void RemoveDemandLoadingEntries(bool currentUser) { try { // Choose a Registry hive based on the function input RegistryKey hive = (currentUser ? Registry.CurrentUser : Registry.LocalMachine); // Open the main AutoCAD (vertical) and "Applications" keys //RegistryKey ack = hive.OpenSubKey(HostApplicationServices.Current.RegistryProductRootKey); RegistryKey ack = hive.OpenSubKey(HostApplicationServices.Current.UserRegistryProductRootKey); using (ack) { RegistryKey appk = ack.OpenSubKey("Applications", true); using (appk) { // Delete the key with the same name as this assembly appk.DeleteSubKeyTree( Assembly.GetExecutingAssembly().GetName().Name ); } } } catch { } }
private static void UninstallRegedit(string appPath) { Document dwg = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument; Editor aced = dwg.Editor; aced.WriteMessage("\n 开始删除AutoCAD CMCU插件注册表:"); try { Autodesk.AutoCAD.Runtime.RegistryKey LocalMachine = Autodesk.AutoCAD.Runtime.Registry.LocalMachine; Autodesk.AutoCAD.Runtime.RegistryKey Applications = LocalMachine.OpenSubKey(appPath, true); string[] subKeys = Applications.GetSubKeyNames(); if (subKeys.Contains(CommonVariable.regeditSubKeyName)) { Applications.DeleteSubKeyTree(CommonVariable.regeditSubKeyName); } aced.WriteMessage("\n 删除AutoCAD CMCU插件注册表成功"); } catch (System.Exception ex) { aced.WriteMessage("\n 删除AutoCAD CMCU插件注册表失败!"); aced.WriteMessage("\n{0}", ex.ToString()); } }