private void btnExecutarBackup_Click(object sender, EventArgs e) { DialogResult res = (chkDesabilitarDesligamento.Checked ? Common.Pergunta("Deseja executar o backup?", false) : Common.Pergunta("O backup será iniciado, deseja desligar a máquina no final? (Clique em Cancelar para cancelar o backup)", true)); if ((res != DialogResult.Cancel && !chkDesabilitarDesligamento.Checked) || (chkDesabilitarDesligamento.Checked && res == DialogResult.Yes)) { SalvarConfiguracoes(); List <string> retorno = Tarefas.Executar(configuracoes, res == DialogResult.Yes); if (retorno.Count > 0) { string mensagensRetorno = ""; foreach (string s in retorno) { mensagensRetorno += s + Environment.NewLine; } Common.MensagemErro(mensagensRetorno); } } }
static void Main(string[] args) { if (!args.Contains <string>("/seminterface") && !args.Contains <string>("/ajuda")) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new frmXPZBackup()); } else { if (args.Contains <string>("/ajuda")) { string mensagem = ""; mensagem += "---------------------------------------------------------------------" + Environment.NewLine; mensagem += "Versão atual do XPZBackup: " + Application.ProductVersion + Environment.NewLine; mensagem += "---------------------------------------------------------------------" + Environment.NewLine; mensagem += "Parâmetros:" + Environment.NewLine; mensagem += Environment.NewLine; mensagem += "/seminterface: Inicializa o programa sem a interface, utilizando as configurações feitas pela interface" + Environment.NewLine; mensagem += Environment.NewLine; mensagem += "/desligar: Usado junto com o parâmetro /seminterface, desliga a máquina no final do processo" + Environment.NewLine; mensagem += Environment.NewLine; mensagem += "/idletimeout <segundos>: Só funcionará com o parâmetro /seminterface. Espera que o sistema esteja em X segundos de inatividade (sem entrada do usuário) antes de fazer o backup" + Environment.NewLine; mensagem += Environment.NewLine; mensagem += "/ajuda: Exibe essa mensagem de ajuda" + Environment.NewLine; mensagem += "---------------------------------------------------------------------" + Environment.NewLine; Common.MensagemInfo(mensagem); } else { if (args.Contains <string>("/seminterface")) { bool desligarNoFinal = args.Contains <string>("/desligar"); Configs configuracoes = ProcessadorXml.Ler(); if (configuracoes.DesabilitarDesligamento) { desligarNoFinal = false; } int idleTimeout = 0; for (int i = 0; i < args.Length; i++) { if (args[i] == "/idletimeout") { if ((i + 1) < args.Length) { idleTimeout = Convert.ToInt32(args[i + 1].ToString()); } else { Common.MensagemErro("Valor Incorreto informado para o parâmetro /idletimeout, verifique os parâmetros informados!"); } } } if (idleTimeout > 0) { int idleTimeoutMilliseconds = idleTimeout * 1000; while (IdleTimeout.GetIdleTime() < idleTimeoutMilliseconds) { Thread.Sleep(1000); } } List <string> retorno = Tarefas.Executar(configuracoes, desligarNoFinal); if (retorno.Count > 0) { string mensagensRetorno = ""; foreach (string s in retorno) { mensagensRetorno += s + Environment.NewLine; } Common.MensagemErro(mensagensRetorno); } } else { Common.MensagemErro("Parâmetros inválidos, verifique os parâmetros informados!"); Application.Exit(); } } } }