none
Como saber o nome do Executavel em RunTime RRS feed

  • Pergunta

  • Como saber o nome do Executavel em tempo de execução , pq eu desenvolvi uma rotina para nao executar mais que uma vez o software , mas se renomear o executavel isso sera possivel.



               Process[] LocalByName = Process.GetProcessesByName("Apresentacao");
               if (LocalByName.Length >= 2)
               {
                  MessageBox.Show("Aplicativo Aberto em outra Janela","Erro" ); 
                  this.Close();
                  return;
                }





    MARCO AURELIO
    terça-feira, 6 de outubro de 2009 14:58

Respostas

  • Olá Marco,

    A classe Process tem um método chamado GetCurrentProcess que retorna uma referência para o processo que está sendo executado no momento (sua aplicação). Com essa referência em mãos, basta consultar a propriedade ProcessName.

    // Obtém o nome do processo atual (esta aplicação)
    Process.GetCurrentProcess().ProcessName;


    Sua rotina para verificação ficaria mais ou menos assim:

    [STAThread]
    static void Main()
    {
        // Obtém o nome do processo atual (esta aplicação)
        string meuProcesso = Process.GetCurrentProcess().ProcessName;
    
        // Procura o processo atual na lista de processos que
        // estão a ser executados neste momento, no computador
        Process[] processos = Process.GetProcessesByName(meuProcesso);
    
        // Além desta instância, já existe mais alguma?
        if (processos != null && processos.Length > 1)
        {
            // Mostra uma mensagem, e termina esta instância...
            MessageBox.Show("Só pode haver um!!", "Highlander :)");
        }
        else
        {
            // Permite executar a aplicação
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
    


    Abraços,
    Caio Proiete



    Caio Proiete
    Microsoft MVP, MCT, MCPD, MCTS, MCSD
    http://www.caioproiete.com
    terça-feira, 6 de outubro de 2009 19:31
    Moderador

Todas as Respostas



  • string

     

     

    teste = Application.CompanyName;
    terça-feira, 6 de outubro de 2009 15:17
  • Olá Marco,

    A classe Process tem um método chamado GetCurrentProcess que retorna uma referência para o processo que está sendo executado no momento (sua aplicação). Com essa referência em mãos, basta consultar a propriedade ProcessName.

    // Obtém o nome do processo atual (esta aplicação)
    Process.GetCurrentProcess().ProcessName;


    Sua rotina para verificação ficaria mais ou menos assim:

    [STAThread]
    static void Main()
    {
        // Obtém o nome do processo atual (esta aplicação)
        string meuProcesso = Process.GetCurrentProcess().ProcessName;
    
        // Procura o processo atual na lista de processos que
        // estão a ser executados neste momento, no computador
        Process[] processos = Process.GetProcessesByName(meuProcesso);
    
        // Além desta instância, já existe mais alguma?
        if (processos != null && processos.Length > 1)
        {
            // Mostra uma mensagem, e termina esta instância...
            MessageBox.Show("Só pode haver um!!", "Highlander :)");
        }
        else
        {
            // Permite executar a aplicação
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
    


    Abraços,
    Caio Proiete



    Caio Proiete
    Microsoft MVP, MCT, MCPD, MCTS, MCSD
    http://www.caioproiete.com
    terça-feira, 6 de outubro de 2009 19:31
    Moderador