Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno_Ferreira

[Resolvido] Iniciar uma Windows aplication automaticamente passan

Recommended Posts

Boa tarde galera,

 

Estou aqui denovo com uma dúvida bacana.

 

Tenho uma plicação windows aqui com Form e tals e tudo mais que recebe alguns parâmetros como usuario e senha do banco e tals, e eu preciso agendar essa aplicação para ela rodar todo dia.

 

Acontece que eu quero o seguinte, quando o cliente iniciar a aplicação manualmente a aplicação simplesmente se inicie e fique aberta pra ele entrar com os parâmetros necessários, mas quando eu iniciar automaticamente, através de um .bat do windows por exemplo, seja passado um parâmetro pra a aplicação pra ele já ir executando direto com os parâmetros padrôes.

 

Em aplicação console é manha sendo que é só chamar a função principal e passar os parâmetros no command mesmo (pelo menos java é assim). Agora como vou gerar um exe, como faço essa passagem de parâmetros pra ela iniciar direto e executando?

 

Se tiver outro jeito de fazer isso sem ser passando parâmetro também vale.

 

valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É exatamente a mesma coisa. No seu projeto WinForms vá na classe program.cs e faça isso:

[STAThread]
static void Main(string[] args)
{
	MessageBox.Show(args[0]);
	Application.EnableVisualStyles();
	Application.SetCompatibleTextRenderingDefault(false);
	Application.Run(new Form1());
}

Agora execute assim:

NomeDoExecutavel.exe Joao

Você vai ver o MessageBox alertando "Joao".

Compartilhar este post


Link para o post
Compartilhar em outros sites

É exatamente a mesma coisa. No seu projeto WinForms vá na classe program.cs e faça isso:

[STAThread]
static void Main(string[] args)
{
	MessageBox.Show(args[0]);
	Application.EnableVisualStyles();
	Application.SetCompatibleTextRenderingDefault(false);
	Application.Run(new Form1());
}

Agora execute assim:

NomeDoExecutavel.exe Joao

Você vai ver o MessageBox alertando "Joao".

No caso devo apenas alterar a Main para ela aceitar parâmetros ou devo sobrecarregá-la?

 

Quero o seguinte, quando clicar duas vezes sobre o exe ele abre e fica esperando alguma ação do usuario, mas se eu passar parâmetros, ele vai executando direto com parâmetros pré padronizados sem perguntar nada. Ou seja, se eu apenas mudar o recebimento de parâmetros da Main vai dar algum problema ao executar direto nos "dois cliques"?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quintelab,

 

tentei sobrecarregar a Main mas não é aceito sobrecarga dela, fiz uma recebendo argumentos e outra não. Ou seja, se a aplicação receber argumentos ela executa tudo sozinha.

tentei também simplesmente colocar parâmetros na Main mas aí ela não executa na base dos "dois cliques" só via command.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não pode ter dois métodos Main() em uma aplicativo, se tiver, por onde o Sistema Operacional vai executar? Só pode ter um.

Tentou assim como eu passei?

static void Main(string[] args)
Faz uma verificação simples.

if (args.Lenght > 0)
{
//É porque passaram parametros.
}
else
{
//Executou com duplo clique.
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza Oenning, funcionou certinho.

 

Realmente nunca sobrecarreguei a Main não, nem em C# e nem em Java, não sabia se podia.

 

A passagem de parâmetros funcionou certinho mas vou padronizar os parametros pois do jeito que está, qualquer que seja ou quantos sejam os parâmetros ele executa automaticamente, independente de quais sejam.

 

valeu!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.