/// <summary> /// Executa uma aplicação. /// </summary> /// <param name="tipoFormulário">Formulário principal que herda de Apresentação.Formulários.BaseFormulário</param> /// <param name="fachada">Nome da faixada</param> /// <param name="efetuarLogin">Pedir que usuário efetua login no banco de dados</param> public static void Executar(Type tipoFormulário, Usuários usuários, bool efetuarLogin, bool mostrarSplash) { #if DEBUG Console.WriteLine("========================================================"); Console.WriteLine("Executando aplicação..."); #endif try { Application.SetCompatibleTextRenderingDefault(false); Application.EnableVisualStyles(); Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException, true); Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(ThreadException); } catch { } #if !DEBUG try #endif { Splash splash; // Mostra splash screen if (mostrarSplash) { splash = new Splash(); splash.Show(); splash.Update(); #if DEBUG Console.WriteLine("Splash exibido!"); #endif } else splash = null; try { aplicação = new Aplicação(tipoFormulário, usuários, efetuarLogin, splash); } catch (LoginNãoAssociadoAFuncionário) { MessageBox.Show("O login não está associado a um funcionário", "Login não pode ser feito", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); return; } catch (LoginOuSenhaIncorretos) { MessageBox.Show("Login e/ou senha incorretos. ", "Login não pode ser feito", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); return; } #if DEBUG Console.WriteLine("Disparando ao carregar!"); #endif aplicação.DispararAoCarregar(); splash = null; #if DEBUG Console.WriteLine("Aplicação pronta!"); Console.WriteLine("========================================================"); #endif Application.Run(aplicação); GC.Collect(); } #if !DEBUG catch (LoginNãoEfetuado) { // Nada aqui } catch (Exception e) { try { Acesso.Comum.Usuários.UsuárioAtual.RegistrarErro(e); MessageBox.Show("Ocorreu um erro e o programa será finalizado. Um relatório de erros foi gerado e enviado ao servidor.\n\nMensagem de erro: " + e.Message, "Falha no sistema", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception e2) { MessageBox.Show("Ocorreu o seguinte erro no sistema e o programa será finalizado: " + e.ToString(), "Falha no sistema", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show("Não foi possível enviar relatório para os programadores devido ao seguinte problema: " + e2.ToString(), "Falha no sistema", MessageBoxButtons.OK, MessageBoxIcon.Error); } } #endif }
public static void Executar(Usuários usuários, bool efetuarLogin, Splash splash) { aplicação = new Aplicação(null, usuários, efetuarLogin, splash); }