Exemplo n.º 1
0
        static void Main()
        {
            try
            {
                ////capturando parametros de entrada para serem lidos
                string[] args = Environment.GetCommandLineArgs();

                var parEntrada = new ParametrosEntrada();
                ////nome do aplicativo que será invocado
                string nomeAplicacao = ConfigurationManager.AppSettings["aplicativo"];


                //// se há mais de um parametro é porque uma aplicação passou eles
                if (args.Count() > 1 &&
                    !string.IsNullOrEmpty(args[1]))
                {
                    if (args[1].ToLower().Contains(nomeAplicacao.ToLower()))
                    {
                        // Objeto tratado do Site com o tratamento
                        var ObjSite = HttpUtility.UrlDecode(args[1].Remove(args[1].IndexOf(":"), 1).Replace(nomeAplicacao.ToLower(), ""));
                        //Está sendo chamado do site
                        parEntrada = JsonConvert
                                     .DeserializeObject <ParametrosEntrada>(ObjSite);

                        //Verifica se a aplicação já está em execução se sim fecha.

                        if (AplicacaoAberta())
                        {
                            Application.Exit();
                            return;
                        }

                        // Se estiver tudo ok abre o formulário com a comunicação com a página pelo signalr
                        // Somente quando é chamado pelo site abre
                        Application.EnableVisualStyles();
                        Application.SetCompatibleTextRenderingDefault(false);
                        Application.Run(new Form1(parEntrada));
                    }
                    else
                    {
                        parEntrada = JsonConvert
                                     .DeserializeObject <ParametrosEntrada>(args[1]);
                    }
                }


                ////o primeiro parametro sempre é o caminho da aplicacao
                parEntrada.Caminho = args[0];

                if (args.Count() <= 1 && !Ferramentas.VerificarProtocolo(parEntrada.Caminho, nomeAplicacao))
                {
                    Ferramentas.Registrar();
                }

                if (parEntrada.Registrar)
                {
                    Ferramentas.RegistrarProtocolo(parEntrada.Caminho, nomeAplicacao);
                    MessageBox.Show("Protocolo registrado com sucesso", nomeAplicacao, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Application.Exit();
                    return;
                }


                //Verifica se a aplicação já está em execução se sim fecha.

                if (AplicacaoAberta())
                {
                    Application.Exit();
                    return;
                }
            }
            catch (Exception err)
            {
                MessageBox.Show($"Erro {err}", "Mensage Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }