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. * } */ }
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); }