using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Configuration.Install; using System.Linq; namespace AnywhereTS { [RunInstaller(true)] public partial class CPanel : System.Configuration.Install.Installer { public CPanel() { InitializeComponent(); } #region install public override void Install(IDictionary stateSaver) { using (log4net.NDC.Push("Logged from TSControlPanel.Installer")) { CreateRegistryConfigKeys(); } } private void CreateRegistryConfigKeys() { try { Microsoft.Win32.RegistryKey key = null; if (IntPtr.Size == 8) { // 64 bit OS //string t = @"SOFTWARE\Wow6432Node\" + ATSGlobals.ApplicationName + @"\ts-config"; key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\", true); key = key.CreateSubKey(ATSGlobals.ApplicationName).CreateSubKey("ts-config"); } else { // 32 bit OS //strATSregRoot = @"SOFTWARE\" + ATSGlobals.ApplicationName + @"\ts-config"; key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software", true); key = key.CreateSubKey(ATSGlobals.ApplicationName).CreateSubKey("ts-config"); } // AdminVersion = 2 key.SetValue("ControlPanelVersion", 1); // RunFirstTime = 1 key.SetValue("RunFirstTime", 1); ATSGlobals.CreateRegistryValues(); } catch (Exception ex) { using (log4net.NDC.Push(string.Format("{0}: MESSAGE={1}{2}Diagnostics:{2}{3}", ex.GetType().Name, ex.Message, System.Environment.NewLine, ex.ToString()))) { Logging.TSControlPanelInstallerLog.Error("CreateRegistryConfigKeys() failed."); } } } #endregion #region uninstall public override void Uninstall(IDictionary savedState) { using (log4net.NDC.Push("Logged from TSControlPanel.Installer")) { try { Logging.TSControlPanelInstallerLog.DebugFormat("Removing TSControlPanel Registry settings"); Microsoft.Win32.RegistryKey key = null; if (IntPtr.Size == 8) { // 64 bit OS //string t = @"SOFTWARE\Wow6432Node\" + ATSGlobals.ApplicationName + @"\ts-config"; key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(string.Format(@"SOFTWARE\Wow6432Node\{0}\{1}", ATSGlobals.ApplicationName,"ts-config"), true); key.DeleteValue("ControlPanelVersion",false); } else { // 32 bit OS //strATSregRoot = @"SOFTWARE\" + ATSGlobals.ApplicationName + @"\ts-config"; key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(string.Format("Software\{0}\{1}", ATSGlobals.ApplicationName, "ts-config"), true); key.DeleteValue("ControlPanelVersion",false); } Logging.TSControlPanelInstallerLog.DebugFormat("Successfully removed TSControlPanel Registry settings"); } catch (Exception ex) { Logging.TSControlPanelInstallerLog.DebugFormat("Failed to remove TSControlPanel Registry settings"); throw ex; } } } #endregion } }