Esempio n. 1
0
        private void btnInstlr_Click(object sender, EventArgs e)
        {
            DesabilitaHabilitaBotoes(false);
            if (PercorreCheckBoxes() == 0)
            {
                MessageBox.Show("Nenhum programa está selecionado.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (System.Configuration.ConfigurationManager.AppSettings.Get("LocalUAC") != "")
            {
                if (File.Exists(System.Configuration.ConfigurationManager.AppSettings.Get("LocalUAC")))
                {
                    System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(System.Configuration.ConfigurationManager.AppSettings.Get("LocalUAC"));
                    System.Diagnostics.Process          rfp = new System.Diagnostics.Process();
                    rfp = System.Diagnostics.Process.Start(psi);
                    rfp.WaitForExit(300000);
                    if (rfp.ExitCode == 1)
                    {
                        MessageBox.Show("O UAC foi desativado. Reiniciando em breve.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                }
                else
                {
                    MessageBox.Show("O arquivo do UAC não foi encontrado no diretório especificado. A instalação prosseguirá sem a checagem.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            GradeDeDados.ClearSelection();
            ExecutaFilaDeInstalacao();
            linhasSelecionadas.Clear();
            DesabilitaHabilitaBotoes(true);

            /*
             * //chechando arquitetura do sistema
             * bool ArchSys = System.Environment.Is64BitOperatingSystem;
             * if (ArchSys == true)
             * {
             *  //fazer uma filtragem de programas.
             * }
             * else
             * {
             *  //fazer outra filtragem de programas.
             * }
             */
        }
Esempio n. 2
0
        private void ExecutaFilaDeInstalacao()
        {
            String  ProgramaSendoInstalado;
            Boolean valorCheckBox;

            ObterLinhasSelecionadas();
            GeraFilaInstalacao();
            GradeDeDados.FirstDisplayedScrollingRowIndex = 0;
            System.IO.Directory.CreateDirectory(System.Configuration.ConfigurationManager.AppSettings.Get("DestinoCopia"));
            if (PercorreCheckBoxes() == 0)
            {
                MessageBox.Show("Nenhum programa está selecionado.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (CopiarArquivos() == 0)
            {
                GradeDeDados.ClearSelection();
                linhasSelecionadas.Clear();
                DesabilitaHabilitaBotoes(true);
                ResetaLinhas();
                return;
            }
            DesabilitaHabilitaBotoes(false);

            //marcando todas as linhas com a cor branca
            ResetaLinhas();

            //marcando linhas selecionadas como amarela
            MarcaComoPendente();


            for (int i = 0; i < GradeDeDados.Rows.Count; i++)
            {
                if (filaDeInstalacao.Count == 0)
                {
                    MessageBox.Show("Instalação concluída!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                valorCheckBox = Convert.ToBoolean(GradeDeDados[2, i].Value);
                if (valorCheckBox == true)
                {
                    ProgramaSendoInstalado = filaDeInstalacao.Dequeue();
                    if (File.Exists(ProgramaSendoInstalado))
                    {
                        ProcessStartInfo psi = new ProcessStartInfo(ProgramaSendoInstalado);
                        Process          rfp = new Process();
                        rfp = Process.Start(psi);
                        rfp.WaitForExit(300000);
                        rfp.Dispose();
                        GradeDeDados.Rows[i].DefaultCellStyle.BackColor = Color.LightGreen;
                    }
                    else
                    {
                        GradeDeDados.Rows[i].DefaultCellStyle.BackColor = Color.Red;
                        if (i >= 8)
                        {
                            GradeDeDados.FirstDisplayedScrollingRowIndex = i;
                        }
                        continue;
                    }
                    if (i >= 8)
                    {
                        GradeDeDados.FirstDisplayedScrollingRowIndex = i;
                    }
                }
            }
            linhasSelecionadas.Clear();
            MessageBox.Show("Instalação concluída.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
            DesabilitaHabilitaBotoes(true);
        }