Usuário com melhor resposta
Chamada de um Outro Programa

Pergunta
-
Respostas
-
Este link poderá te ajudar.
https://www.ecode10.com/artigo/431/Chamando-Programas-de-Dentro-do-Windows-Forms
Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.
Mauricio Junior - Comunidade www.ecode10.com- Marcado como Resposta GaribaldoGuerreiro segunda-feira, 23 de julho de 2018 14:17
Todas as Respostas
-
Olá Garibaldo, tudo bem!
Supondo que o aplicativo que você quer chamar é um Windows Forms, no projeto dele você tem a classe Program.cs.
Esta é a classe que inicia seu aplicativo, e nela você tem o método Main que é o primeiro método executado dele. Este método recebe um vetor de strings nomeado por padrão como args[].
Ao chamar este aplicativo por prompt de comando (CMD), por exemplo, você consegue passar argumentos (parâmetros) após o nome do executável e neste método que comentei acima, você consegue capturar estes parâmetros.
Digamos que seu aplicativo se chame "Teste.exe" (apenas para exemplificar), e que então você queira chamar ele passando por parâmetro um CNPJ, como comentou na sua questão. Então, sua linha de chamada no prompt ficaria assim:
Teste.exe "000.000/00001-00"
Cada parâmetro passado, deve ser separado por um espaço em branco.
Outro ponto importante é que se o parâmetro possui um espaço em seu valor, como um nome composto, por exemplo "Fabio Rosa", então você deve passar todo o valor do parâmetro entre aspas duplas, como fiz acima com o número do CNPJ. Caso não tenha espaços, as aspas duplas não são necessárias.
Sabendo disso, para chamar o aplicativo você pode criar um .bat com o comando ou então chamar pelo Process.Start() (se a aplicação de origem também for .NET e você possuir acesso ao código).
No método Main da sua aplicação de destino bastaria pegar o primeiro parâmetro:
var CNPJ = args[0];
Espero ter ajudado!
Att,
Fabio Rosa.
-
Bom dia Fábio, eu montei essa rotina para chamar um outro programa. Está dando erro.
ClientesBLL obj = new ClientesBLL(); dgvConsulta10.DataSource = obj.PesquisaNumeroFilialCpfCnpjCliente(nFilialGlobal, maskCnpjExpedidor.Text, nControle); if (dgvConsulta10.RowCount < 2) { DialogResult result = (MessageBox.Show("Não Existe Registros na Tabela de Clientes Expedidor Com o Cnpj ou Cpf Digitado!, Deseja Cadastrá-lo?", "Decisão Para Cadastro de Cliente EXPEDIDOR", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, MessageBoxOptions.RightAlign)); if (result == DialogResult.Yes) { frmClientes objClientes = new frmClientes(); objClientes.MdiParent = this; objClientes.Show(); } Limpa_DadosExpedidor(); maskCnpjExpedidor.Focus(); }
-
Bom dia Garibaldo,
Bom, este código é bem diferente do que eu havia entendido de sua questão...hehe...
Certo. Primeiro, se possível quero que você informe em que linha de código ocorre o erro... e qual a mensagem de erro apresentada.
Uma coisa que pude perceber de início é que mesmo chamando a tela objClientes, o seu código não para ali para aguardar o usuário incluir o cliente. Isto devido a você estar utilizando o método Show() para exibira nova tela (necessário por trabalhar com MDI), portanto, seu método 'Limpa_DadosExpedidor()' e o foco no controle 'maskCnpjExpedidor' será executado imediatamente após abrir a tela para cadastrar novo cliente.... Suspeito que possa estar aí o problema... Para verificar, experimente comentar estas linhas e executar para ver o que acontece.
Se o problema for realmente aí, você terá que vincular o evento Close do seu form para que o aplicativo saiba quando você fechou a janela para então executar estas linhas de código.
Att,
Fabio Rosa.
-
Este link poderá te ajudar.
https://www.ecode10.com/artigo/431/Chamando-Programas-de-Dentro-do-Windows-Forms
Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.
Mauricio Junior - Comunidade www.ecode10.com- Marcado como Resposta GaribaldoGuerreiro segunda-feira, 23 de julho de 2018 14:17
-
Este link poderá te ajudar.
https://www.ecode10.com/artigo/431/Chamando-Programas-de-Dentro-do-Windows-Forms
Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.
Mauricio Junior - Comunidade www.ecode10.com