internal static bool HasServiceParams() { using (ChoCommandLineArgParser parser = new ChoCommandLineArgParser()) { parser.Parse(); foreach (KeyValuePair <string, string> keyValuePair in parser) { if (keyValuePair.Key.ToUpper() == "@SN") { return(true); } if (keyValuePair.Key.ToUpper() == "@DN") { return(true); } if (keyValuePair.Key.ToUpper() == "@IN") { return(true); } if (keyValuePair.Key.ToUpper() == "@SD") { return(true); } if (keyValuePair.Key.ToUpper() == "@I") { return(true); } if (keyValuePair.Key.ToUpper() == "@U") { return(true); } if (keyValuePair.Key.ToUpper() == "@S") { return(true); } if (keyValuePair.Key.ToUpper() == "@T") { return(true); } if (keyValuePair.Key.ToUpper() == "@P") { return(true); } if (keyValuePair.Key.ToUpper() == "@C") { return(true); } if (keyValuePair.Key.ToUpper() == "@E") { return(true); } if (keyValuePair.Key.ToUpper() == "@SP") { return(true); } } return(false); } }
internal static ChoShellExtensionActionMode?GetShellExtensionActionMode() { using (ChoCommandLineArgParser parser = new ChoCommandLineArgParser()) { parser.Parse(); string mode = null; foreach (KeyValuePair <string, string> keyValuePair in parser) { if (keyValuePair.Key.ToUpper() == "#SE") { mode = keyValuePair.Value; break; } } ChoShellExtensionActionMode seMode; if (!mode.IsNullOrWhiteSpace()) { if (Enum.TryParse <ChoShellExtensionActionMode>(mode, out seMode)) { return(seMode); } } foreach (string pos in parser.PosArgs) { if (!pos.IsNullOrWhiteSpace()) { if (Enum.TryParse <ChoShellExtensionActionMode>(pos, out seMode)) { return(seMode); } } } return(null); } }
internal static ChoApplicationMode?GetApplicationMode() { using (ChoCommandLineArgParser parser = new ChoCommandLineArgParser()) { parser.Parse(); ChoValidApplicationMode validApplicationMode; foreach (KeyValuePair <string, string> keyValuePair in parser) { if (keyValuePair.Key.ToUpper() == "#AM") { if (Enum.TryParse <ChoValidApplicationMode>(keyValuePair.Value, out validApplicationMode)) { return((ChoApplicationMode)Enum.Parse(typeof(ChoApplicationMode), validApplicationMode.ToString())); } break; } } } return(null); }
public static string GetServiceDescription() { using (ChoCommandLineArgParser parser = new ChoCommandLineArgParser()) { parser.Parse(); foreach (KeyValuePair <string, string> keyValuePair in parser) { if (keyValuePair.Key.ToUpper() == "@SD") { if (!keyValuePair.Value.IsNullOrWhiteSpace()) { return(keyValuePair.Value); } else { break; } } } return(ChoServiceInstallerSettings.Me.Description.IsNullOrWhiteSpace() ? null : ChoServiceInstallerSettings.Me.Description); } }
public static string GetDisplayName() { using (ChoCommandLineArgParser parser = new ChoCommandLineArgParser()) { parser.Parse(); foreach (KeyValuePair <string, string> keyValuePair in parser) { if (keyValuePair.Key.ToUpper() == "@DN") { if (!keyValuePair.Value.IsNullOrWhiteSpace()) { return(keyValuePair.Value); } else { break; } } } return(GetServiceName()); } }
private static string GetInstanceName() { using (ChoCommandLineArgParser parser = new ChoCommandLineArgParser()) { parser.Parse(); foreach (KeyValuePair <string, string> keyValuePair in parser) { if (keyValuePair.Key.ToUpper() == "@IN") { if (!keyValuePair.Value.IsNullOrWhiteSpace()) { return(keyValuePair.Value); } else { break; } } } return(null); } }
private static string GetServiceNameInternal() { using (ChoCommandLineArgParser parser = new ChoCommandLineArgParser()) { parser.Parse(); foreach (KeyValuePair <string, string> keyValuePair in parser) { if (keyValuePair.Key.ToUpper() == "@SN") { if (!keyValuePair.Value.IsNullOrWhiteSpace()) { return(keyValuePair.Value); } else { break; } } } return(ChoServiceInstallerSettings.Me.ServiceName.IsNullOrWhiteSpace() ? ChoGlobalApplicationSettings.Me.ApplicationNameWithoutExtension : ChoServiceInstallerSettings.Me.ServiceName); } }
public static string GetServiceParams() { using (ChoCommandLineArgParser parser = new ChoCommandLineArgParser(false)) { parser.Parse(); foreach (KeyValuePair <string, string> keyValuePair in parser) { if (keyValuePair.Key.ToUpper() == "@SP") { if (!keyValuePair.Value.IsNullOrWhiteSpace()) { return(keyValuePair.Value); } else { break; } } } return(ChoServiceInstallerSettings.Me.ServiceParams == null || ChoServiceInstallerSettings.Me.ServiceParams.Value.IsNullOrWhiteSpace() ? String.Empty : ChoServiceInstallerSettings.Me.ServiceParams.Value); } }
internal static void OverrideFrxParams(ChoGlobalApplicationSettings gas) { if (gas == null) { return; } string serviceName = null; using (ChoCommandLineArgParser parser = new ChoCommandLineArgParser()) { parser.Parse(); foreach (KeyValuePair <string, string> keyValuePair in parser) { if (keyValuePair.Key.ToUpper() == "@SN") { if (!keyValuePair.Value.IsNullOrWhiteSpace()) { serviceName = gas.LogSettings.LogFolder = keyValuePair.Value.Trim(); } } } } string command = null; using (ChoCommandLineArgParser parser = new ChoCommandLineArgParser()) { parser.Parse(); foreach (KeyValuePair <string, string> keyValuePair in parser) { if (keyValuePair.Key.ToUpper() == "@I") { ChoApplication.ServiceInstallation = true; command = "InstallService"; break; } else if (keyValuePair.Key.ToUpper() == "@U") { ChoApplication.ServiceInstallation = true; command = "UninstallService"; break; } else if (keyValuePair.Key.ToUpper() == "@S") { ChoApplication.ServiceInstallation = true; command = "StartService"; break; } else if (keyValuePair.Key.ToUpper() == "@T") { ChoApplication.ServiceInstallation = true; command = "StopService"; break; } else if (keyValuePair.Key.ToUpper() == "@P") { ChoApplication.ServiceInstallation = true; command = "PauseService"; break; } else if (keyValuePair.Key.ToUpper() == "@C") { ChoApplication.ServiceInstallation = true; command = "ContinueService"; break; } else if (keyValuePair.Key.ToUpper() == "@E") { ChoApplication.ServiceInstallation = true; command = "ExecuteCommand"; break; } } if (ChoApplication.ServiceInstallation) { gas.ApplicationBehaviourSettings.HideWindow = false; gas.ApplicationBehaviourSettings.SingleInstanceApp = true; gas.ApplicationName = "{0}.{1}".FormatString(gas.ApplicationNameWithoutExtension, command); gas.EventLogSourceName = "{0}.{1}".FormatString(gas.EventLogSourceName, command); gas.LogSettings.LogFileName = "{0}.{1}".FormatString(GetLogFileName(serviceName, gas.LogSettings.LogFileName), command); gas.LogSettings.LogFolder = serviceName.IsNullOrWhiteSpace() ? command : Path.Combine(command, serviceName); gas.LogSettings.DoAppendProcessIdToLogDir = false; } } }
public ChoApplicationHost() { ChoApplication.ApplyFrxParamsOverrides += ((sender, e) => { ApplyFrxParamsOverrides(e.GlobalApplicationSettings, e.MetaDataFilePathSettings); using (ChoCommandLineArgParser parser = new ChoCommandLineArgParser()) { parser.Parse(); foreach (KeyValuePair <string, string> keyValuePair in parser) { if (keyValuePair.Key.ToUpper() == "I") { ChoApplication.ServiceInstallation = true; e.GlobalApplicationSettings.ApplicationBehaviourSettings.HideWindow = false; e.GlobalApplicationSettings.ApplicationBehaviourSettings.SingleInstanceApp = false; e.GlobalApplicationSettings.DoAppendProcessIdToLogDir = false; e.GlobalApplicationSettings.ApplicationName = "{0}.InstallService".FormatString(e.GlobalApplicationSettings.ApplicationNameWithoutExtension); e.GlobalApplicationSettings.EventLogSourceName = "{0}.InstallService".FormatString(e.GlobalApplicationSettings.EventLogSourceName); e.GlobalApplicationSettings.LogSettings.LogFileName = "{0}.InstallService".FormatString(e.GlobalApplicationSettings.LogSettings.LogFileName); break; } else if (keyValuePair.Key.ToUpper() == "U") { ChoApplication.ServiceInstallation = true; e.GlobalApplicationSettings.ApplicationBehaviourSettings.HideWindow = false; e.GlobalApplicationSettings.ApplicationBehaviourSettings.SingleInstanceApp = false; e.GlobalApplicationSettings.DoAppendProcessIdToLogDir = false; e.GlobalApplicationSettings.ApplicationName = "{0}.UninstallService".FormatString(e.GlobalApplicationSettings.ApplicationNameWithoutExtension); e.GlobalApplicationSettings.EventLogSourceName = "{0}.UninstallService".FormatString(e.GlobalApplicationSettings.EventLogSourceName); e.GlobalApplicationSettings.LogSettings.LogFileName = "{0}.UninstallService".FormatString(e.GlobalApplicationSettings.LogSettings.LogFileName); break; } else if (keyValuePair.Key.ToUpper() == "S") { ChoApplication.ServiceInstallation = true; e.GlobalApplicationSettings.ApplicationBehaviourSettings.HideWindow = false; e.GlobalApplicationSettings.ApplicationBehaviourSettings.SingleInstanceApp = false; e.GlobalApplicationSettings.DoAppendProcessIdToLogDir = false; e.GlobalApplicationSettings.ApplicationName = "{0}.StartService".FormatString(e.GlobalApplicationSettings.ApplicationNameWithoutExtension); e.GlobalApplicationSettings.EventLogSourceName = "{0}.StartService".FormatString(e.GlobalApplicationSettings.EventLogSourceName); e.GlobalApplicationSettings.LogSettings.LogFileName = "{0}.StartService".FormatString(e.GlobalApplicationSettings.LogSettings.LogFileName); break; } else if (keyValuePair.Key.ToUpper() == "T") { ChoApplication.ServiceInstallation = true; e.GlobalApplicationSettings.ApplicationBehaviourSettings.HideWindow = false; e.GlobalApplicationSettings.ApplicationBehaviourSettings.SingleInstanceApp = false; e.GlobalApplicationSettings.DoAppendProcessIdToLogDir = false; e.GlobalApplicationSettings.ApplicationName = "{0}.StopService".FormatString(e.GlobalApplicationSettings.ApplicationNameWithoutExtension); e.GlobalApplicationSettings.EventLogSourceName = "{0}.StopService".FormatString(e.GlobalApplicationSettings.EventLogSourceName); e.GlobalApplicationSettings.LogSettings.LogFileName = "{0}.StopService".FormatString(e.GlobalApplicationSettings.LogSettings.LogFileName); break; } else if (keyValuePair.Key.ToUpper() == "P") { ChoApplication.ServiceInstallation = true; e.GlobalApplicationSettings.ApplicationBehaviourSettings.HideWindow = false; e.GlobalApplicationSettings.ApplicationBehaviourSettings.SingleInstanceApp = false; e.GlobalApplicationSettings.DoAppendProcessIdToLogDir = false; e.GlobalApplicationSettings.ApplicationName = "{0}.PauseService".FormatString(e.GlobalApplicationSettings.ApplicationNameWithoutExtension); e.GlobalApplicationSettings.EventLogSourceName = "{0}.PauseService".FormatString(e.GlobalApplicationSettings.EventLogSourceName); e.GlobalApplicationSettings.LogSettings.LogFileName = "{0}.PauseService".FormatString(e.GlobalApplicationSettings.LogSettings.LogFileName); break; } else if (keyValuePair.Key.ToUpper() == "C") { ChoApplication.ServiceInstallation = true; e.GlobalApplicationSettings.ApplicationBehaviourSettings.HideWindow = false; e.GlobalApplicationSettings.ApplicationBehaviourSettings.SingleInstanceApp = false; e.GlobalApplicationSettings.DoAppendProcessIdToLogDir = false; e.GlobalApplicationSettings.ApplicationName = "{0}.ContinueService".FormatString(e.GlobalApplicationSettings.ApplicationNameWithoutExtension); e.GlobalApplicationSettings.EventLogSourceName = "{0}.ContinueService".FormatString(e.GlobalApplicationSettings.EventLogSourceName); e.GlobalApplicationSettings.LogSettings.LogFileName = "{0}.ContinueService".FormatString(e.GlobalApplicationSettings.LogSettings.LogFileName); break; } else if (keyValuePair.Key.ToUpper() == "E") { ChoApplication.ServiceInstallation = true; e.GlobalApplicationSettings.ApplicationBehaviourSettings.HideWindow = false; e.GlobalApplicationSettings.ApplicationBehaviourSettings.SingleInstanceApp = false; e.GlobalApplicationSettings.DoAppendProcessIdToLogDir = false; e.GlobalApplicationSettings.ApplicationName = "{0}.ExecuteCommand".FormatString(e.GlobalApplicationSettings.ApplicationNameWithoutExtension); e.GlobalApplicationSettings.EventLogSourceName = "{0}.ExecuteCommand".FormatString(e.GlobalApplicationSettings.EventLogSourceName); e.GlobalApplicationSettings.LogSettings.LogFileName = "{0}.ExecuteCommand".FormatString(e.GlobalApplicationSettings.LogSettings.LogFileName); break; } } } }); ChoApplication.FatalApplicationException += FatalApplicationException; //ChoApplication.Initialize(); ChoGlobalApplicationSettings x = ChoGlobalApplicationSettings.Me; ApplyServiceInstallParamsOverrides(ChoServiceProcessInstallerSettings.Me, ChoServiceInstallerSettings.Me); ServiceProcessInstaller processInstaller = new ServiceProcessInstaller(); ChoApplication.WriteToEventLog(ChoServiceProcessInstallerSettings.Me.ToString()); processInstaller.Account = ChoServiceProcessInstallerSettings.Me.Account; processInstaller.Username = ChoServiceProcessInstallerSettings.Me.UserName; processInstaller.Password = ChoServiceProcessInstallerSettings.Me.Password; ChoApplication.WriteToEventLog(ChoServiceInstallerSettings.Me.ToString()); ServiceInstaller serviceInstaller = new ServiceInstaller(); serviceInstaller.DisplayName = ChoServiceInstallerSettings.Me.DisplayName.IsNullOrWhiteSpace() ? ChoGlobalApplicationSettings.Me.ApplicationNameWithoutExtension : ChoServiceInstallerSettings.Me.DisplayName; ServiceName = serviceInstaller.ServiceName = ChoServiceInstallerSettings.Me.ServiceName.IsNullOrWhiteSpace() ? ChoGlobalApplicationSettings.Me.ApplicationNameWithoutExtension : ChoServiceInstallerSettings.Me.ServiceName; serviceInstaller.StartType = ChoServiceInstallerSettings.Me.ServiceStartMode; serviceInstaller.DelayedAutoStart = ChoServiceInstallerSettings.Me.DelayedAutoStart; serviceInstaller.Description = ChoServiceInstallerSettings.Me.Description; this.Installers.Add(processInstaller); this.Installers.Add(serviceInstaller); }