Usuário com melhor resposta
nslookup = consultar texto inserido no textbox

Pergunta
-
Boa tarde,
Sou novo na programação C# e estou enfrentando dificuldade em achar como solucionar o problema na minha consulta. Criei um programa para testar DNS, porem não consigo encontrar a forma de mandar consultar o que escrevi no textbox1 + MeuDNS. Poderiam ajudar?Grato!
EX:
private void button1_Click(object sender, EventArgs e)
{
Process test1 = new Process();
test1.StartInfo.FileName = "nslookup";
test1.StartInfo.UseShellExecute = false;
test1.StartInfo.Arguments = textBox1.Text + Meu_DNS;
test1.StartInfo.RedirectStandardOutput = true;
test1.StartInfo.CreateNoWindow = true;
test1.Start();
textBox2.Text = test1.StandardOutput.ReadToEnd();
Respostas
-
Olá Mário,
Acredito que seu código está correto, falta apenas um detalhe, na verdade um espaço entre os comandos do textbox e do seu DNS. Segue:
private void button1_Click(object sender, EventArgs e) { Process test1 = new Process(); test1.StartInfo.FileName = "nslookup"; test1.StartInfo.UseShellExecute = false; test1.StartInfo.Arguments = textBox1.Text + " " + Meu_DNS; test1.StartInfo.RedirectStandardOutput = true; test1.StartInfo.CreateNoWindow = true; test1.Start(); textBox2.Text = test1.StandardOutput.ReadToEnd(); }
Estou assumindo MEU_DNS tem o valor do seu DNS mesmo.
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Sugerido como Resposta André SeccoMVP terça-feira, 1 de novembro de 2016 10:03
- Marcado como Resposta Mário Rodeghiero terça-feira, 1 de novembro de 2016 10:54
-
Mário,
É que o Arguments recebe uma string, então o 8.8.8.8 tem que estar dentro das aspas, dessa forma:
test1.StartInfo.Arguments = textBox1.Text + " 8.8.8.8";
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Editado André SeccoMVP segunda-feira, 31 de outubro de 2016 19:22
- Marcado como Resposta Mário Rodeghiero terça-feira, 1 de novembro de 2016 10:54
-
Mário,
Se entendi bem você quer pegar o valor "Text" da CheckBox que estiver selecionada e já jogar ele como parte do argumento para executar o nslookup, correto?
Pois bem, não tem como fazer isso da maneira que postou. Ia ter que verificar cada CheckBox e depois se estivesse marcado, pegar o valor Text dele.
Eu recomendo usar uma Combobox para isso. Nela terá todas as opções também e deixaria seu código mais elegante e limpo. Fica mais ou menos assim:
Process test11 = new Process(); test11.StartInfo.FileName = "nslookup"; test11.StartInfo.UseShellExecute = false; test11.StartInfo.Arguments = combobox.Text + " 8.8.8.8 "; test11.StartInfo.RedirectStandardOutput = true; test11.StartInfo.CreateNoWindow = true; test11.Start(); textBox2.Text = test11.StandardOutput.ReadToEnd();
OBS: Perceba que com o uso da combobox você elimina todas aquelas verificações que eram feitas com o checkBox
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Editado André SeccoMVP terça-feira, 1 de novembro de 2016 12:49
- Marcado como Resposta Mário Rodeghiero terça-feira, 1 de novembro de 2016 12:52
-
Sim, então ele se comporta da mesma forma na sua aplicação.
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta Mário Rodeghiero quinta-feira, 3 de novembro de 2016 10:46
Todas as Respostas
-
Olá Mário,
Acredito que seu código está correto, falta apenas um detalhe, na verdade um espaço entre os comandos do textbox e do seu DNS. Segue:
private void button1_Click(object sender, EventArgs e) { Process test1 = new Process(); test1.StartInfo.FileName = "nslookup"; test1.StartInfo.UseShellExecute = false; test1.StartInfo.Arguments = textBox1.Text + " " + Meu_DNS; test1.StartInfo.RedirectStandardOutput = true; test1.StartInfo.CreateNoWindow = true; test1.Start(); textBox2.Text = test1.StandardOutput.ReadToEnd(); }
Estou assumindo MEU_DNS tem o valor do seu DNS mesmo.
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Sugerido como Resposta André SeccoMVP terça-feira, 1 de novembro de 2016 10:03
- Marcado como Resposta Mário Rodeghiero terça-feira, 1 de novembro de 2016 10:54
-
Boa tarde André,
na verdade queria passar direto o valor do meu DNS, e não como uma variável.
Nesta forma ele ainda identifica erro ao passar o IP.
private void button1_Click(object sender, EventArgs e)
{
Process test1 = new Process();
test1.StartInfo.FileName = "nslookup";
test1.StartInfo.UseShellExecute = false;
test1.StartInfo.Arguments = textBox1.Text + " " + 8.8.8.8;
test1.StartInfo.RedirectStandardOutput = true;
test1.StartInfo.CreateNoWindow = true;
test1.Start();
textBox2.Text = test1.StandardOutput.ReadToEnd();}
-
Mário,
É que o Arguments recebe uma string, então o 8.8.8.8 tem que estar dentro das aspas, dessa forma:
test1.StartInfo.Arguments = textBox1.Text + " 8.8.8.8";
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Editado André SeccoMVP segunda-feira, 31 de outubro de 2016 19:22
- Marcado como Resposta Mário Rodeghiero terça-feira, 1 de novembro de 2016 10:54
-
-
Ótimo Mário,
Não esqueça de marcar como resposta para que outros usuários identifiquem facilmente a solução!
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco -
Caros,
Criei duas formas diferentes para o usuário realizar uma consulta no DNS.- Uma usando textbox e outra usando o checkbox.
- Minha duvida é a seguinte, existe uma forma de chamar o checkbox selecionado, como no codigo abaixo "chekbox?" usando o "IF" com este operador logico "OR"?
private void button1_Click(object sender, EventArgs e)
{
// Codigo para URL fixa
if (checkBox1.Checked | checkBox2.Checked | checkBox3.Checked | checkBox4.Checked | checkBox5.Checked)
{
Process test11 = new Process();
test11.StartInfo.FileName = "nslookup";
test11.StartInfo.UseShellExecute = false;
test11.StartInfo.Arguments = Checkbox? + " 8.8.8.8 ";
test11.StartInfo.RedirectStandardOutput = true;
test11.StartInfo.CreateNoWindow = true;
test11.Start();
textBox2.Text = test11.StandardOutput.ReadToEnd();
- Editado Mário Rodeghiero terça-feira, 1 de novembro de 2016 12:36
-
Mário,
Se entendi bem você quer pegar o valor "Text" da CheckBox que estiver selecionada e já jogar ele como parte do argumento para executar o nslookup, correto?
Pois bem, não tem como fazer isso da maneira que postou. Ia ter que verificar cada CheckBox e depois se estivesse marcado, pegar o valor Text dele.
Eu recomendo usar uma Combobox para isso. Nela terá todas as opções também e deixaria seu código mais elegante e limpo. Fica mais ou menos assim:
Process test11 = new Process(); test11.StartInfo.FileName = "nslookup"; test11.StartInfo.UseShellExecute = false; test11.StartInfo.Arguments = combobox.Text + " 8.8.8.8 "; test11.StartInfo.RedirectStandardOutput = true; test11.StartInfo.CreateNoWindow = true; test11.Start(); textBox2.Text = test11.StandardOutput.ReadToEnd();
OBS: Perceba que com o uso da combobox você elimina todas aquelas verificações que eram feitas com o checkBox
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Editado André SeccoMVP terça-feira, 1 de novembro de 2016 12:49
- Marcado como Resposta Mário Rodeghiero terça-feira, 1 de novembro de 2016 12:52
-
-
-
Aparentemente não Mário,
No cmd ele retorna em todas as requisições?
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco -
-
Sim, então ele se comporta da mesma forma na sua aplicação.
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta Mário Rodeghiero quinta-feira, 3 de novembro de 2016 10:46