コード例 #1
0
 public Win32API.ServiceReturnCode Install(string name, string displayName,
                                           string physicalLocation, Win32API.ServiceStartMode startMode, string userName, string password,
                                           string[] dependencies)
 {
     return(Install(Environment.MachineName, name, displayName,
                    physicalLocation, startMode, userName, password, dependencies, false));
 }
コード例 #2
0
        /// <summary>
        /// Instala un servicio en una maquina
        /// </summary>
        /// <param name="machineName">nombre de la maquina</param>
        /// <param name="name">nombre del servicio</param>
        /// <param name="displayName">El nombre que se mostrara en la consola de administracion</param>
        /// <param name="physicalLocation">el path de instalacion</param>
        /// <param name="startMode">Como arrancara el servicio - normalmente: Automatic</param>
        /// <param name="userName">el usuario que ejecuta el servicio</param>
        /// <param name="password">el password del usuario</param>
        /// <param name="dependencies">Otras dependencias del servicio</param>
        /// <param name="interactWithDesktop">Interactua con el escritorio?</param>
        /// <returns>Codigo devuelto indicando el exito de la operacion</returns>
        public Win32API.ServiceReturnCode Install(string machineName, string name,
                                                  string displayName, string physicalLocation, Win32API.ServiceStartMode startMode,
                                                  string userName, string password, string[] dependencies, bool interactWithDesktop)
        {
            const string methodName = "Create";

            //string[] serviceDependencies = dependencies != null ? dependencies.Split(',') : null;
            //if (userName.IndexOf('\\') < 0)
            //{
            //    //userName = "******" + userName;
            //    //
            //}

            try
            {
                object[] parameters = new object[]
                {
                    name,                                                       // Nombre
                    displayName,                                                // nombre mostrado
                    physicalLocation,                                           // Path
                    Convert.ToInt32(Win32API.ServiceType.OwnProcess),           // Tipo de servicio
                    Convert.ToInt32(Win32API.ServiceErrorControl.UserNotified), // Error Control
                    startMode.ToString(),                                       // Modo arranque
                    interactWithDesktop,                                        // interaccion con el escritorio
                    userName,                                                   // usuario
                    password,                                                   // Password
                    null,                                                       //
                    null,                                                       // Dependencias
                    dependencies                                                // ServiceDependencies
                };
                return((Win32API.ServiceReturnCode)_wmi.InvokeStaticMethod(machineName, CLASS_NAME, methodName, parameters));
            }
            catch
            {
                return(Win32API.ServiceReturnCode.UnknownFailure);
            }
        }