コード例 #1
0
ファイル: Program.cs プロジェクト: evandrojr/NeoPocket
 static void Main()
 {
     //Nao permite a execucao de mais de uma instancia do programa
     using (AppExecutionManager execMgr = new AppExecutionManager(D.AplicacaoNome))
     {
         string lpszParentWindow = D.AplicacaoNome;
         if (execMgr.IsFirstInstance)
         {
             InitAppVariables();
             Application.Run(D.FrmPrincipalRef);
         }
         else
         {
             //Deveria ter aqui apenas o BringWindowToTop(lpszParentWindow); entranto é necessário este workaround para consertar o
             //problema da janela hoje que não permitia o aplicativo aparecer na frente
             BringWindowToTop(lpszParentWindow);
             InitAppVariables();
             Application.Run(D.FrmPrincipalRef);
         }
     }
 }
コード例 #2
0
ファイル: Program.cs プロジェクト: evandrojr/NeoPocket
 static void Main()
 {
     //Verificar se tem um neo pocket rodando
     using (AppExecutionManager execMgrNeoPocket = new AppExecutionManager("NeoPocket"))
     {
         string lpszParentWindowNeoPocket = "NeoPocket";
         if (execMgrNeoPocket.IsFirstInstance)
         {
             //Nao tem neo pocket rodando, vou verificar se tem neo pocket updater
             using (AppExecutionManager execMgrNeoPocketUpdater = new AppExecutionManager("NeoPocketUpdater"))
             {
                 string lpszParentWindowNeoPocketUpdater = "NeoPocketUpdater";
                 if (execMgrNeoPocket.IsFirstInstance)
                 {
     //                           Nao tem NeoPocketUpdater rodando, vou chamar um novo updater
                     InitAppVariables();
                     Application.Run(D.FrmPrincipalRef);
                 }
                 else
                 {
     //                          Ja tinha, vou abrir o que estava rodando
                     BringWindowToTop(lpszParentWindowNeoPocketUpdater);
                     Application.Exit();
                 }
             }
         }
         else
         {
             // Chama o Neo pocket que estava em execucao
             BringWindowToTop(lpszParentWindowNeoPocket);
             //Mesmo que já tenha um em execução aguarda 3 segundos e tenta chamar outro, pois a tela "Hoje" causa um problema de não
             //permitir que o aplicativo fique na frente
             System.Threading.Thread.Sleep(3000);
             System.Diagnostics.Process.Start(D.AplicacaoDiretorio + "NeoPocket.exe", "");
             Application.Exit();
         }
     }
 }