Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
13 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 13 Visitantes :: 1 Motor de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Últimos assuntos
» Ajuda a direcionar
8/12/2016, 01:17 por miiiih

» Alterar uma palavra num arquivo de texto
5/12/2016, 12:02 por Teseu

» Buscar endereço por CEP
3/12/2016, 19:59 por pedrossian

» USAR WEBSERVICE NO VFP9
2/12/2016, 09:50 por AJC

» BANIMENTO DE USUARIO
17/11/2016, 08:31 por FAF

» Impressora Ticket
15/11/2016, 09:20 por clima238

» Gráfico
9/11/2016, 10:43 por hidroluz

» TRANSPOR TABELA
9/11/2016, 10:34 por hidroluz

» MUDANÇA DO .DBF PARA POTSGREE
9/11/2016, 09:12 por AJC

» Website com videoaulas sobre linguagens de programação
8/11/2016, 09:56 por JLDR

» Parceria para desenvolvimento de template em Wordpress
7/11/2016, 19:15 por mindix

» Data fica invertida na planilha que é gerada via programa.
27/10/2016, 11:00 por Linghston

» Maximizar report direto do menu
21/10/2016, 20:48 por Rosangela Pires

» Fechar form com tempo
21/10/2016, 10:15 por Rosangela Pires

» URGENTE: Ajuda com impressora ELGIN-L42
14/10/2016, 09:53 por megasoft

» Opções para gerar NF-e
10/10/2016, 09:07 por mavsinfo

» Google Maps
8/10/2016, 15:08 por Rosangela Pires

» Mysql
5/10/2016, 11:22 por Marcos Guedes

» Acessando Banco em MYSQL de um projeto WORDPRESS
3/10/2016, 10:58 por Marcos Guedes

» OPTION SELECT MOSTRAR CAMPOS QUASE PRONTO
26/9/2016, 21:09 por BobKuspe

Alterar uma palavra num arquivo de texto

5/12/2016, 12:02 por Teseu

Olá prezados colegas de programação!

Este é eu primeiro post no fórum e gostaria de poder …

Comentários: 0

Buscar endereço por CEP

3/12/2016, 19:59 por pedrossian

Caros amigos, meu código para buscar endereço pelo CEP não funciona mais.
Alguém pode me …

Comentários: 0

USAR WEBSERVICE NO VFP9

2/12/2016, 09:50 por AJC

Pessoal, preciso de um material ou livro que me traga instruções como
usar a consumação de …

Comentários: 0

BANIMENTO DE USUARIO

13/11/2016, 16:21 por FAF

A usuária ROSANGELA PIRES ao tentar acessar o Forum obtem sempre a mensagem de BANIMENTO.
A mesma …

Comentários: 3

Impressora Ticket

15/11/2016, 09:20 por clima238

Bom dia,
Por favor alguém me explique porque o código abaixo imprime no ecrã em vez do printer: …

Comentários: 0

Estatísticas
Temos 6964 usuários registrados
O último usuário registrado atende pelo nome de Ricardo Cassolatto

Os nossos membros postaram um total de 17119 mensagens em 2577 assuntos

Trazer para frente uma aplicação em execução

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido Trazer para frente uma aplicação em execução

Mensagem por Marcos Guedes em 30/7/2010, 12:01

Amigos, estou com mais uma dúvida.

Em algumas aplicações, preciso permitir apenas uma execução por vez...
Então para verificar se o aplicativo já está sendo executado, utilizo o seguinte código no método Main.
Código:
static void Main(string[] args)
{
   /* Verifica se o programa já está em execução */
    Process[] ListaProcessos = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
    foreach (Process P in ListaProcessos)
      if (P.Id != Process.GetCurrentProcess().Id)
        {
         Console.Write("Este processo já está sendo executado.\nPressione uma tecla para encerrar...");
            Console.ReadKey();
            return;
        }
    /* Fim - Verifica se o programa já está em execução */

    continuaExecuacao(); // Método chamado para executar a aplicação, caso não esteja em uso
}

O que ocorre, é que se o programa estiver em execução, é exibido apenas uma mensagem para o usuário, porém eu gostaria de trazer a aplicação para frente.
Alguém saber como faço isto?

Desde já, agradeço.


Última edição por Marcos Guedes em 30/7/2010, 14:31, editado 1 vez(es)

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Trazer para frente uma aplicação em execução

Mensagem por cabeludo em 30/7/2010, 13:01

Vasculhando os métodos de 'Process', vi que tem o método Start(), que de acordo com o help, inicia ou "reutiliza" o processo...
Talvez nessa "reutilização" ele venha para frente, não?

ps: Também tenho esse mesmo problema... :-)

cabeludo
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Trazer para frente uma aplicação em execução

Mensagem por Marcos Guedes em 30/7/2010, 13:36

Testei, mas não funciona.
Estou tentando encontrar uma solução com API do Windows, utilizando a função BringWindowToTop()

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Trazer para frente uma aplicação em execução

Mensagem por Marcos Guedes em 30/7/2010, 14:30

Aew, pessoal, consegui!!!
cheers

Adaptei o código que postei na primeira mensagem para o seguinte:
Código:
static void Main()
{
   /* Verifica se o programa já está em execução */           
   Process[] ListaProcessos = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
    foreach (Process P in ListaProcessos)
    {
      if (P.Id != Process.GetCurrentProcess().Id)
        {                   
         SetForegroundWindow(P.MainWindowHandle);                   
            return;
      }
   }
   /* Fim - Verifica se o programa já está em execução */

    continuaExecuacao(); // Método chamado para executar a aplicação, caso não esteja em uso
}

[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);

Namespaces necessários:
Código:
using System.Runtime.InteropServices;
using System.Diagnostics;


Última edição por Marcos Guedes em 3/8/2010, 11:22, editado 1 vez(es)

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Trazer para frente uma aplicação em execução

Mensagem por cabeludo em 30/7/2010, 15:02

Parabens bonitão! Essa vai pra biblioteca!

cabeludo
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Trazer para frente uma aplicação em execução

Mensagem por cabeludo em 30/7/2010, 15:13

A mesma coisa, mas utilizando LINQ afro

Código:
Program.cs

static class Program
{
[STAThread]
static void Main()
{
   Application.EnableVisualStyles();
   Application.SetCompatibleTextRenderingDefault(false);
   if (checkPreviousRunning() == false) Application.Run(new frmMain());
}

static bool checkPreviousRunning()
{
   var process =
      (from p in Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName)
       where p.Id != Process.GetCurrentProcess().Id
       select p).FirstOrDefault();

   if (process != null)
   {
      SetForegroundWindow(process.MainWindowHandle);
      return true;
   }
   else
      return false;
}
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
}


Última edição por cabeludo em 30/7/2010, 15:33, editado 2 vez(es) (Razão : Faltou a declaração da classe, para facilitar um CTRL+C CTRL+V)

cabeludo
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Resolvido Re: Trazer para frente uma aplicação em execução

Mensagem por Marcos Guedes em 30/7/2010, 15:31

Valeu, cabeludo!

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Trazer para frente uma aplicação em execução

Mensagem por Conteúdo patrocinado Hoje à(s) 17:22


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum