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) { base.Install(stateSaver); string path = this.Context.Parameters["targetdir"]; Logging.UpdateLogPath(string.Format(@"{0}\logs", path)); using (log4net.NDC.Push("Logged from TSControlPanel.Installer")) { try { CreateRegistryConfigKeys(); } 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("Install() failed."); } throw ex; } } } private void CreateRegistryConfigKeys() { try { Logging.TSControlPanelInstallerLog.Info("Creating AnywhereTS Control Panel 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(@"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(); Logging.TSControlPanelInstallerLog.Info("Successfully created AnywhereTS Control Panel registry Registry settings"); } 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 { string path = this.Context.Parameters["targetdir"]; Logging.UpdateLogPath(string.Format(@"{0}\logs", path)); 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 } }