padrecito007 Ответов: 1

Как запустить команду CMD из visual basic 2010?


Мне нужна команда run CMD из visual basic 2010
полностью скрытый я не хочу, чтобы черный экран отображался.

Спасибо.

Что я уже пробовал:

попробовать это:
Команда оболочки")
запустите команду, но появится экран CMD.

а мне нужно полностью спрятаться и на уровне администратора.

Есть идеи?

Sergey Alexandrovich Kryukov

Вам нужно начать CMD.EXE (командный интерпретатор)? (Это была бы плохая идея.) Или вам действительно нужна какая-то команда самой себе? Если это так, то это не имеет никакого отношения к "cmd".
—СА

1 Ответов

Рейтинг:
7

OriginalGriff

Это довольно просто:

Private processCmd As Process = Nothing
Private Sub butStartCmd_Click(sender As Object, e As EventArgs) Handles butStartCmd.Click
	If processCmd Is Nothing Then
		Dim pCommand As New Process()
		pCommand.StartInfo.FileName = "cmd"
		pCommand.StartInfo.RedirectStandardOutput = True
		pCommand.StartInfo.RedirectStandardError = True
		pCommand.StartInfo.UseShellExecute = False
		pCommand.StartInfo.CreateNoWindow = True
		pCommand.Start()
		processCmd = pCommand
	End If
	'
	'int index = (int)numericUpDown1.Value;
	'thumbs.DeleteAt(index);
End Sub
Private Sub butKillCmd_Click(sender As Object, e As EventArgs) Handles butKillCmd.Click
	If processCmd IsNot Nothing Then
		processCmd.Kill()
		processCmd = Nothing
	End If
End Sub



"Спасибо.
куда я положил команду?

команда такая: ping 8.8.8.8-t"



Почему вы используете командную строку для пинга?
Почему бы не использовать класс Ping непосредственно в вашем коде? Это просто, легче получить и обработать результаты, и это намного яснее в вашем коде...

Например:
Private Sub PingIt()
	Try
		Dim p As New Ping()
		Dim reply As PingReply = p.Send(IPAddress.Parse("8.8.8.8"))
		Console.WriteLine("Ping: {0}:{1}:{2}", reply.Address, reply.RoundtripTime, reply.Status)
	Catch pex As PingException
		Console.WriteLine("Ping failed: " + pex.InnerException.Message)
	End Try
End Sub


padrecito007

Спасибо.
куда я положил команду?

команда такая: ping 8.8.8.8-t

OriginalGriff

Ответ обновлен.

OriginalGriff

Никогда не пытаться.
Но можно попробовать через класс событий :
https://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.stop(v=против 110). aspx

padrecito007

Привет. куда я положил команду cmd?

Частная Суб Pingit ()
пробовать
Dim p как новый Ping ()
Тусклый ответ как PingReply = p. Send (IPAddress.Разбор ("8.8.8.8"))
Приставка.WriteLine ("Ping: {0}: {1}: {2}", ответьте.Адрес, ответ.RoundtripTime, ответить.Статус)
Поймать pex как PingException
Приставка.WriteLine ("Ping failed:" + pex.Свойство innerexception.Сообщение)
Конец Попытки
Конец Подводной Лодки

Для меня это не работает.
Я хотел бы запустить команду в CMD.
Спасибо.