Это инструмент под названием speedtest-cli, который дает вам текущую скорость загрузки и выгрузки. Вот ссылка на то, где я ее нашел: https://www.howtogeek.com/179016/how-to-test-your-internet-speed-from-the-command-line/
Здесь приведены инструкции по его установке, и, поскольку я использую Windows, мне пришлось установить python / pip, все это, а затем изменить системный путь к pip, как требуется в статье.
Затем я установил его через cmd, используя "pip install speedtest-cli". Теперь я набираю "speedtest-cli" на cmd, и он дает мне правильный вывод, что-то вроде этого:
![enter image description here](https://i.stack.imgur.com/Njyfz.jpg)
Это займет около 20-30 секунд.
Я попытался получить этот вывод в моем приложении, используя следующий код:
public string getNetSpeed()
{
string x = "";
Process proc = new Process();
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.Arguments = "/C speedtest-cli";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardInput = true;
proc.Start();
x += proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
proc.Dispose();
return x;
}
Тем не менее, похоже, что proc.HasExited()
(его нет в фрагменте кода, но я использовал его для проверки) дает мне "true" сразу после запуска, поэтому строка получается пустой. Я пытался использовать System.Threading.Thread.Sleep(30000);
для ожидания тех 30 секунд, которые требуются для обработки, но я знал, что это бессмысленно, и, как и ожидалось, не сработало.
Делает ли тот факт, что мне пришлось установить python / pip перед этим, невозможным для меня просто использовать команду непосредственно из приложения? Это время, необходимое для завершения? Это не имеет особого смысла для меня, но я действительно не знаю, поэтому я попробовал все это. Даже пытался добавить еще один процесс до этого, выполнив pip install speedtest-cli
перед выполнением speedtest-cli
в одиночку, но оба вышли пустыми и, казалось, выходили прямо при запуске.
Кто-нибудь знает, что я здесь не так делаю? Нужно ли добавить ссылку или что-то подобное? Заранее спасибо.