Login
Estamos no Facebook
Buscar
Quem está conectado
Há 10 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 10 Visitantes :: 2 Motores de buscaNenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Brasília
| |
Estamos no Twitter

Nossa Comunidade

Nosso Grupo

Últimos assuntos
Top dos mais postadores
| Marcos Guedes | ||||
| hugo | ||||
| alceu11 | ||||
| Julio | ||||
| m@r<3|o | ||||
| mfelis | ||||
| Tales Ruan | ||||
| Nelson Arcas | ||||
| _batmanvfp_ | ||||
| marcio |
Minimizar , Maximizar e Restaurar
17/5/2012, 13:46 por FERNANDOMATRELLA
Olá gostaria de saber se alguem ja se deparou com uma dificuldade que eu estou tendo:
Ao minimizar …
Ao minimizar …
Comentários: 8
Estatísticas
Temos 4025 usuários registradosO último usuário registrado atende pelo nome de fhpvga
Os nossos membros postaram um total de 14399 mensagens em 2043 assuntos
Trazer para frente uma aplicação em execução
Página 1 de 1 • Compartilhe •
Trazer para frente uma aplicação em execução
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.
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.
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.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: Trazer para frente uma aplicação em execução
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... :-)
Talvez nessa "reutilização" ele venha para frente, não?
ps: Também tenho esse mesmo problema... :-)
_________________
[Você precisa estar registrado e conectado para ver esta imagem.]
Lucy - Hallelujah (Alexandra Burke) --> D.Maria cantando!!!
PalcoMP3/RatoMG
RIK - CD Demo

cabeludo- Participa Bastante

Re: Trazer para frente uma aplicação em execução
Testei, mas não funciona.
Estou tentando encontrar uma solução com API do Windows, utilizando a função BringWindowToTop()
Estou tentando encontrar uma solução com API do Windows, utilizando a função BringWindowToTop()
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: Trazer para frente uma aplicação em execução
Aew, pessoal, consegui!!!
Adaptei o código que postei na primeira mensagem para o seguinte:
Namespaces necessários:
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.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: Trazer para frente uma aplicação em execução
Parabens bonitão! Essa vai pra biblioteca!
_________________
[Você precisa estar registrado e conectado para ver esta imagem.]
Lucy - Hallelujah (Alexandra Burke) --> D.Maria cantando!!!
PalcoMP3/RatoMG
RIK - CD Demo

cabeludo- Participa Bastante

Re: Trazer para frente uma aplicação em execução
A mesma coisa, mas utilizando LINQ
- 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)
_________________
[Você precisa estar registrado e conectado para ver esta imagem.]
Lucy - Hallelujah (Alexandra Burke) --> D.Maria cantando!!!
PalcoMP3/RatoMG
RIK - CD Demo

cabeludo- Participa Bastante

Re: Trazer para frente uma aplicação em execução
Valeu, cabeludo!


_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Página 1 de 1
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum
Início
» Link PHP (Dúvida)
» Fundo do PROJETO Transparente??
» Pivot Table no sql server
» Scroll EditBox Automatico
» Erro no Projeto Chat
» Select Nexval do FoxPro no OracleXE
» Colocar gif na caixa do MESSAGEBOX ()
» Comparar Versões do programa.exe
» Menu lateral
» Fazer com que a tela do sistema assume a janela principal
» Trocar Palavra no Sistema
» invocar Dll em Xbase
» Fechar Porta Aberta
» Acessar Banco de dados mysql na web atraves cursor adapter
» Livro Caixa
» Problema na porta paralela
» Email + PHP + VFP
» Quero ajuda em PHP , alguem que ja programe em php
» Passos Iniciais