Как показать вывод speedtest-cli, который был установлен с помощью pip? - PullRequest
0 голосов
/ 09 ноября 2018

Это инструмент под названием 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

Это займет около 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 в одиночку, но оба вышли пустыми и, казалось, выходили прямо при запуске.

Кто-нибудь знает, что я здесь не так делаю? Нужно ли добавить ссылку или что-то подобное? Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...