C# - Chamando uma App Windows Forms do Console
Hoje temos uma dica de como chamar uma aplicação Windows Forms a partir de uma aplicação console e passar parâmetros. |
Podemos chamar uma aplicação Windows Forms a partir do Console e passar parâmetros para a aplicação Windows Forms.
Vamos criar uma aplicação Windows Forms com o .NET Framework usando o Visual Studio 2019 Community chamada WF_Parametros.
No formulário padrão Form1.cs vamos incluir a partir da
ToolBox os seguintes controles:
Disponha os controles no formulário conforme a figura abaixo:
Vamos chamar esse formulário e passar os valores do nome do usuário e da senha.
Agora no construtor do formulário inclua o código a seguir:
using System;
using System.Windows.Forms;
namespace WF_Parametros
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
var data = Environment.GetCommandLineArgs();
if (data.Length == 3)
{
txtUsuario.Text = data[1];
mskSenha.Text = data[2];
}
}
}
} |
No construtor do formulário estamos usando o comando Environment.GetCommandLineArgs() que retorna uma array de strings que contém os argumentos de linha de comando para o processo atual.
O primeiro elemento é o nome do arquivo executável e os seguintes elementos contêm os argumentos de linha de comando restantes.
A seguir verificamos se o número de argumentos é igual a 3 pois estamos esperando dois argumentos: o nome e a senha do usuário.
Criando o projeto Console na mesma solução
Vamos incluir na solução criada um projeto do tipo Console chamado ConsoleApp_WF:
A seguir inclua o código abaixo na classe Program.cs:
using System.Diagnostics;
using System.IO;
using System.Reflection;
namespace ConsoleApp_WF
{
class Program
{
static void Main(string[] args)
{
string dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string appWindowsForms = dir.Replace("ConsoleApp_WF", "WF_Parametros") + "\\WF_Parametros.exe";
Process pro = new Process();
pro.StartInfo.FileName = appWindowsForms;
pro.StartInfo.Arguments = "Macoratti Numsey@2019";
pro.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
pro.Start();
pro.WaitForExit();
}
}
}
|
No código acima estamos obtendo o caminho de execução do projeto atual e substituindo o nome pelo nome do projeto Windows Forms : WF_Parametros e acrescentando o nome do executável : WF_Parametros.exe
A seguir usamos uma instância da classe Process que fornece acesso a processos locais e remotos e permite que você inicie e pare os processos do sistema local.
Depois estamos passando o nome e caminho do executável e passando os parâmetros : Macoratti e Numsey@2019.
O método Start() da classe Process Inicia (ou reutiliza) o recurso do processo que é especificado pela propriedade StartInfo desse componente Process e o associa ao componente.
O método WaitForExit instrui o componente Process a esperar indefinidamente que o processo associado seja encerrado.
Executando o projeto teremos:
Pegue o código do projeto aqui : WF_Parametros.zip
Que nos consola em toda a nossa tribulação, para que também possamos consolar os
que estiverem em alguma tribulação, com a consolação com que nós mesmos somos
consolados por Deus."
2 Coríntios 1:3,4
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET