C# - Como iniciar um processo CMD (prompt de comandos)


 Neste artigo vou mostrar como usar a classe Process e a classe ProcessStartInfo para iniciar um processo CMD e executar comandos.

A classe Process fornece acesso a processos locais e remotos e permite que você inicie e pare os processos do sistema local, e, a classe ProcessStartInfo especifica um conjunto de valores usados quando você inicia um processo.

A classe ProcessStartInfo é usada junto com com a classe Process e quando você inicia um processo usando a classe Process você tem acesso para processar as informações disponíveis além de poder anexar um processo em execução.

Você pode usar o a classe ProcessStartInfo para ter um controle sobre o processo a iniciar, neste caso, você deve definir pelo menos a propriedade FileName quer seja manualmente ou quer esja usando o construtor.

Essas classes pertencem ao name namespace System.Diagnostics que contêm tipos que permitem interagir com processos do sistema, logs de eventos e medidores de desempenho.

O método Process.Start inicia um recurso de processo e o associa um component Process que fornece acesso a processos locais e remotos e permite que você inicie e pare os processos do sistema local.

Recursos Usados

Criando o projeto Windows Forms

Abra o VS 2017 Community e crie um novo projeto (File-> New Project) usando a linguagem C# e o template Windows Forms App (.NET Framework).

Informe um nome a seu gosto. Eu vou usar o nome WF_ProcessoCMD;

No formulário Form1 do projeto vamos usar basicamente 4 controles Buttons.

Disponha os controles conforme o leiaute da figura abaixo:

A seguir inclua no formulário os seguintes namespaces:

using System;
using System.Diagnostics;
using System.Windows.Forms;


A seguir temos o código completo do formulário Form1.cs :

namespace WF_ProcessoCMD
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void btnIniciarCMD_Click(object sender, EventArgs e)
        {
            //Define uma instância da classe ProcessStartInfo
            ProcessStartInfo pro = new ProcessStartInfo();
            //Define a propriedade FileName a ser iniciada
            pro.FileName = "cmd.exe";
            //inicia o processo
            Process proStart = new Process();
            // Define o nome do processo
            proStart.StartInfo = pro;
            // chama o método Start para começar
            proStart.Start();
        }
        private void btnExecutarApp_Click(object sender, EventArgs e)
        {
            // Obtem o caminho que armazena os links favoritos
            string meusCaminhosFavoritos =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);
            // Inicia o Firefox
            Process.Start("firefox.exe");
            // Exibe o conteudo da pasta favorites no navegador
            Process.Start(meusCaminhosFavoritos);
        }
        private void btnExecutarAppArgumentos_Click(object sender, EventArgs e)
        {
            // Inicia o bloco de dados om o arquivo txt associado
            Process.Start("notepad.exe", "C:\\dados\\txt\\FernandoPessoa.txt");
        }
        private void btnExecutarProcessoMinimizado_Click(object sender, EventArgs e)
        {
            //inicia o iexplorer minimizado (So funciona se ele estiver fechado)
            //caso contrario abre a janela cheia
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;
            startInfo.Arguments = "www.macoratti.net";
            Process.Start(startInfo);     
        }
    }
}

Simples e funcional...

Pegue o projeto completo aqui :  WF_ProcessoCMD.zip

"E Jesus lhes respondeu: Meu Pai trabalha até agora, e eu trabalho também."
João 5:17

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?

 

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

 

Referências:


José Carlos Macoratti