コード例 #1
0
ファイル: SetupInstall.cs プロジェクト: Mualumene/SGP
        /// <summary>
        /// Valida os dados digitados.
        /// </summary>
        /// <param name="mensagem">Mensagem de retorno da validação.</param>
        /// <returns></returns>
        private bool ValidarDados(out string mensagem)
        {
            mensagem = string.Empty;

            if (string.IsNullOrEmpty(NomeServico))
            {
                mensagem = "Nome do serviço é obrigatório.";
                return(false);
            }

            if (string.IsNullOrEmpty(txtCaminho.Text))
            {
                mensagem = "Caminho de instalação raiz do serviço é obrigatório.";
                return(false);
            }

            servicePort = (int)cmbAvaliablePorts.SelectedItem;

            if (servicePort < 555 || servicePort > 600)
            {
                mensagem = "Porta inválida.";
                return(false);
            }

            if (ServiceUtilities.PortInUse(servicePort))
            {
                mensagem = "A porta já esta em uso.";
                return(false);
            }

            ManagementObjectSearcher   searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Service");
            ManagementObjectCollection servicos = searcher.Get();


            foreach (ManagementObject obj in servicos)
            {
                if (obj["Name"].ToString().Trim().Equals(NomeServico))
                {
                    mensagem = "Já existe um serviço com este nome.\r\n";
                }

                if (string.IsNullOrEmpty(obj["PathName"].ToString()) ? false : obj["PathName"].ToString().Trim().Equals(CaminhoInstalacao.Trim()))
                {
                    mensagem += "Já existe um serviço instalado neste caminho.";
                }

                if (!string.IsNullOrEmpty(mensagem))
                {
                    return(false);
                }
            }

            return(true);
        }
コード例 #2
0
ファイル: SetupInstall.cs プロジェクト: Mualumene/SGP
        public SetupInstall(Form form)
        {
            InitializeComponent();
            frmSetup = form;

            txtPrefixoNome.Text = Constantes.NomeServico;
            txtCaminho.Text     = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), Constantes.NomeEmpresa);

            cmbAvaliablePorts.Items.AddRange(ServiceUtilities.GetAvailablePorts().Cast <object>().ToArray());
            cmbAvaliablePorts.DropDownHeight = 106;
            cmbAvaliablePorts.SelectedIndex  = 0;

            backgroundWorker.DoWork             += backgroundWorker_DoWork;
            backgroundWorker.RunWorkerCompleted += backgroundWorker_RunWorkerCompleted;

            serviceInstaller = new ServiceInstaller();
            processInstaller = new ServiceProcessInstaller();

            serviceInstaller.AfterInstall   += serviceInstaller_AfterInstall;
            serviceInstaller.Committed      += serviceInstaller_Committed;
            serviceInstaller.BeforeRollback += serviceInstaller_BeforeRollback;
        }