Уроки C# - ProgressBar + WebClient, HttpWebRequest, WebResponse - C#

Поділитися
Вставка
  • Опубліковано 2 тра 2019
  • Донаты и на кофе ➜ t.me/win10tweaker/171
    Эксклюзив для спонсоров ➜ / xpuct
    Если недоступна спонсорка ➜
    Основной канал:
    / jailbreakvideo
    Форум по C#:
    win10tweaker.ru/forum/forum/%...
    #ProgressBar #WebClient #HttpWebRequest #WebResponse #СиSharp #СиШарп
  • Наука та технологія

КОМЕНТАРІ • 212

  • @redtayron6390
    @redtayron6390 5 років тому +19

    Спасибо за уроки Хачатур, глаза разбегаются с чего бы начать)

  • @RISE26127
    @RISE26127 Рік тому +3

    Необязательно ставить запятую что бы посмотреть что необходимо для той или иной функции итд, достаточно нажать crtl+shift+пробел

  • @user-zu8pj1is1t
    @user-zu8pj1is1t 5 років тому +9

    Это тот ролик который я ждал! Спасибо тебе за старания)

  • @oilondabeats9011
    @oilondabeats9011 2 роки тому +1

    буквально месяца 4 назад я ненавидил твои видосы ибо нех непонятно было .... сегодня, прям мило посмотреть все доходчиво ,все ясно :)

  • @lamax847
    @lamax847 5 років тому +7

    Отличные уроки, лайк!

  • @nikomag9785
    @nikomag9785 4 роки тому +1

    Спасибо Вам большое! Три дня забивал голову многопоточностью чтобы Progressbar не зависал - посмотрел видео - сделал за 20 минут!

  • @user-no3rr2wk2g
    @user-no3rr2wk2g 5 років тому +4

    Сперва думал, каким лешим ProgressBar с HTTP в одном ролике, а вот оно что оказывается. Прикольно. Надо тоже похожую штуку сделать будет

  • @user-oo7sz8vn2g
    @user-oo7sz8vn2g Рік тому +1

    Огонь, спасибо за контент ! Подписка, лайк)

  • @Vchaosu
    @Vchaosu Рік тому

    Урок просто огонь, побольше бы таких

  • @user-ej6wc1hy7z
    @user-ej6wc1hy7z 4 роки тому +4

    Минимум воды - максимум пользы, Спасибо!

  • @VitaliyZlobin
    @VitaliyZlobin 4 роки тому +6

    Привет!) Благодарю за уроки - доступные, живые)
    Было бы не плохо узнать подробней про работу с API. Авторизация, запросы, ответы, подводные камни...

  • @Gelenbagen
    @Gelenbagen 5 років тому +2

    Спасибо)
    Понятно и коротко)

  • @the_rise2324
    @the_rise2324 4 роки тому +1

    Хороший урок, очень понятно

  • @archdeucetux5757
    @archdeucetux5757 4 роки тому +1

    хорошие видосики, спасибо

  • @user-ln8qx7wk9h
    @user-ln8qx7wk9h Рік тому +1

    вы просто красавчик !!!

  • @-vip-6387
    @-vip-6387 22 дні тому

    Супер круто!!! Спасибо
    Тут мысль о подключении TCP Udp когда используешь Uri, я имею ввиду пример приложения Wirewall

  • @glebkrel5526
    @glebkrel5526 3 роки тому +1

    Хорошие уроки !!! Спс. Запрашивать размер данных через Header не всегда хорошо. В данном случае хедер генерируется сервером хостинга от куда качаются данные, но если у вас будет серверная программа, которая бы принимала данные от другой программы, тогда значение Content-Length будет таким, каким его сделает программист в программе-клиенте. И при его ошибке может получиться несоответствие, так как может прийти данных условно на 2Гб а в контент ленгс будет просто левое значение, например 100)))

  • @kashiroko6632
    @kashiroko6632 3 роки тому +1

    великолепно!

  • @LineAngel
    @LineAngel 3 роки тому

    Здравствуйте, подскажите пожалуйста как привязать прогрессбар к запуску программы через сетевой ресурс (локальная сеть) или программы находящейся на пк с отображением загрузки в прогрессбар. Заранее спасибо.

  • @nikitanikitenko5338
    @nikitanikitenko5338 5 років тому +2

    Лучший учитель

  • @user-tf6nn7mj9d
    @user-tf6nn7mj9d Рік тому +1

    Суперр!

  • @Sergioshe
    @Sergioshe 4 роки тому +1

    Спасибо.

  • @Iamnotagenius
    @Iamnotagenius 4 роки тому +1

    Когда хочешь передать в ToString параметр, его можно передать с помощью интерполяции через двоеточие, возьму твой пример: $"Загружено: {e.ProgressPercentage}% ({e.BytesReceived / 1048576:#.#} МБ)"

  • @RosemiNext
    @RosemiNext Рік тому +1

    WebClient нельзя поставить на паузу... Единственное, что огорчает. Спасибо. Я знаю, что видео два года!)

  • @kotbaziliokotbazilio9818
    @kotbaziliokotbazilio9818 3 роки тому

    думаю было бы интересно, если бы Вы показали пару примеров по переопределению визуальных компонентов

  • @akasteroid2625
    @akasteroid2625 Рік тому

    есть пара вопросов не по теме
    1 - есть разные числа double которые показываю в текстБоксе
    когда число 1.0386 (не с запятой а с точкой) то конвертирует в стринг и выдает в текстбоксе как 10386 (тоесть убирает точку)
    как мне правильно конвертировать в стринг?
    2 -
    также у некоторых чисел после запятой могут быть 3 знака и может 8
    тоесть 1.003 или 0.00030049
    если при конвертации в стринг пишу аргумент число.ToString("F3 или F8") это не по феншую
    как определять сколько знаков после запятой (в принципе просто посчитать количестко символов)
    но как это записать в число.ToString(сюда) чтобы выдавало правильное количество знаков после запятой ?
    а ну и вместо запятой должна быть точка
    ссори за стресс ;)

  • @alexeygudan
    @alexeygudan 4 роки тому

    Возможно ли сделал этот прогресбар круглым? Или это только через другие варианты?

  • @NIKITA-jy5pv
    @NIKITA-jy5pv 2 роки тому

    Привет! Какую музыку используешь?

  • @joelgomescoutinho6432
    @joelgomescoutinho6432 Рік тому +1

    Добрый вечер!
    В видео Уроки C# - ProgressBar + WebClient, HttpWebRequest, WebResponse - C# - в видео время 18:19
    вы использовали сочетание клавиш для перехода вверх по строке, вы не вырезали и не вставляли, не могли бы вы сказать мне, какие сочетания клавиш вы использовали.
    Если что-то пропустили или не поняли, пишу на английском, пользуюсь переводчиком с португальского на русский.

    • @XpucT
      @XpucT  Рік тому +1

      Добрый 🖐
      Alt + стрелка на клавиатуре 👍

  • @Chrescoe1
    @Chrescoe1 5 років тому +5

    Привет, очень хочу узнать можно ли красиво менять версию запускаемого браузера WebBrowser? И можно ли в одном приложении запускать разные версии webBrowser
    В интернетах нашел только способ через ключ реестра FEATURE_BROWSER_EMULATION, но то не позволит мне запустить 2 браузера разных версий(ie7, ie11) в одном приложении

    • @XpucT
      @XpucT  5 років тому +3

      Привет 🖐
      Любопытный вопрос. Отмечу себе и попробую посмотреть, какие там проблемы.

    • @adamiyy
      @adamiyy 5 років тому +1

      Я как то пытался встроить chromium в программу чтобы гугл карты нормально высвечивались, скачал библиотеку в итоге программа превратилась в кашу весом 300мб. Так что тоже интересно)

  • @tyuop
    @tyuop 5 років тому +2

    Как выставить timeout на определенное значение? Например, при LongPool сервере отправляя запрос, я получу ответ при новом действии. И действие при событии error; заданный timeout превышен.

    • @XpucT
      @XpucT  5 років тому +1

      ru.stackoverflow.com/questions/610009/long-polling-c

  • @UFO26
    @UFO26 Рік тому

    11:25 или правой кнопкой мыши по переменной/методу, во всплывающем меню строка: "переименовать"

  • @user-xj5yr6dx8r
    @user-xj5yr6dx8r 4 роки тому

    Подскажите, а можно ли при помощи WebClient докачивать файлы? Допустим начал скачивание файла, а потом завершил программу и при новом запуске программы заставить докачать файл с той точки где он остановил скачивание

    • @XpucT
      @XpucT  4 роки тому

      stackoverflow.com/a/16004845

  • @setfps
    @setfps 4 роки тому +1

    Годно.

  • @tkaisert9745
    @tkaisert9745 5 років тому +2

    интересно

  • @smart_electrics_il
    @smart_electrics_il Рік тому

    Добрый день)
    Зашел на основной канал, так и не нашел видео, как можно сменить цвет прогресс бара...
    А реально ещё сменить задний фон ?

  • @mikepytchak8883
    @mikepytchak8883 5 років тому +2

    Привет ты лучший. Спасибо тебе) Почему не используешь ReSharper ?

    • @XpucT
      @XpucT  5 років тому +2

      Привет 🖐
      Думал сделать отдельно даже Portable.
      Думаю доберёмся.

    • @mikepytchak8883
      @mikepytchak8883 5 років тому +2

      ​@@XpucT C ReSharper надо разобраться в настройках чтобы получить перфоманс потому что он работает в процессе самой VS и для него там почти нет места. И даже на i5-том с 16 RAM лагает дико(((

    • @adamiyy
      @adamiyy 5 років тому

      @@mikepytchak8883 Согласен, очень уж удобная штука, но и ждать каждый раз по 40 секунд пока грузится ReSharper как-то не очень.

  • @stibushix4779
    @stibushix4779 11 місяців тому

    Приветствую!
    После просмотра урока у меня остались вопросы:
    1. как прикрутить прогресс бар к внешнему процессу, например процессу, в котором происходит обработка списка элементов из базы данных, и как сделать так чтоб в этом процессе вызвался ProgressBar и без нажатия каких либо кнопок в форме (см. второй вопрос) по мере обработки элементов в прогрессбаре показывалось бы состояние обработки? (то есть ProgressBar.Value изменяется внешним процессом/потоком)
    2. можно ли ProgressBar вызвать без создания формы?
    3. если процессов (циклов в процессе) обработки несколько, как в форме изменять количество прогрессбаров и привязывать к разным циклам обработки?
    Вот пример кода основного процесса:
    namespace ConsoleApp1
    {
    public class Counter
    {
    public static int Value = 0;
    static void Main(string[] args)
    {
    int max = 100;
    int value = 0;
    Task.Run(() =>
    {
    Form1 form = new Form1(max);
    form.ShowDialog();
    });
    while (value < max)
    {
    value++;
    Value = value;
    Console.WriteLine(value.ToString());
    Thread.Sleep(50);
    }
    }
    }
    }
    Вот код формы:
    namespace ConsoleApp1
    {
    public partial class Form1 : Form
    {
    public Form1(int max)
    {
    InitializeComponent();
    progressBar.Maximum = max;
    Thread thread = new Thread(Process);
    thread.Start();
    }
    void Process()
    {
    if (InvokeRequired)
    {
    BeginInvoke((Action)Process);
    }
    else
    {
    while (progressBar.Value < Counter.Value)
    progressBar.Value = Counter.Value;
    }
    }
    }
    }

    • @XpucT
      @XpucT  11 місяців тому

    • @stibushix4779
      @stibushix4779 11 місяців тому

      @@XpucT вижу ответ из одного слова "Шкот", значение которого не понимаю

  • @NoName-tk4ym
    @NoName-tk4ym Рік тому

    Здорово! Интересно, а есть видео как делается export из MySQL в excel таблицу. Там количество строк меняется и интересно процент загрузки как делается :)

  • @zapiton
    @zapiton 5 років тому +3

    Привет Хачатур, как насчет того чтобы ты сделал видос, где ты от а до я создаешь какую то программу(от дизайна формы до публикации) это было бы интересно)

    • @zapiton
      @zapiton 5 років тому +3

      На пример что-то типа punto switcher'а

  • @taifunov
    @taifunov 5 років тому +3

    Можешь сделать видео урок как например парсить какую-то инфу с интернета?
    Пример: вставляешь ссылку на какой-то сайт, нажимаешь парсить и получаешь ту инфу, которая тебе нужна, но на примере c#

    • @XpucT
      @XpucT  5 років тому +3

      Мы проходили это в этом видео: ua-cam.com/video/HLBSTuGMiqI/v-deo.html
      Главное - не пропускать материал и не перематывать =)

  • @andreypokrovskiy7197
    @andreypokrovskiy7197 4 роки тому +1

    Хачатур, спасибо огромное! как обычно все доступно и просто. Подскажи пожалуйста, как при удалении n-количества файлов в папке ПРОПУСТИТЬ/НЕ ТРОГАТЬ те которые заняты каким-либо процессом? выдает ошибку ( System.IO.IOException: "Процесс не может получить доступ к файлу ).

    • @XpucT
      @XpucT  4 роки тому +1

      void Button1_Click(object sender, EventArgs e)
      {
      string file = @"C:\Temp\Заблокированный файл.log";
      MessageBox.Show(CanDelete(file) ? "Можно удалить" : "Нельзя удалить");
      }
      bool CanDelete(string file)
      {
      try
      {
      using (var fs = File.Open(file, FileMode.Open, FileAccess.Read, FileShare.None))
      return true;
      }
      catch
      {
      return false;
      }
      }

    • @andreypokrovskiy7197
      @andreypokrovskiy7197 4 роки тому +1

      @@XpucT Спасибо большое! понял в какую сторону копать !!!!
      foreach (var file in Directory.GetFiles($@"C:\Users\{Environment.UserName}\AppData\Local\Temp"))
      {
      try
      {
      File.Delete(file);
      }
      catch
      {
      }

  • @UFO26
    @UFO26 Рік тому

    А если надо выводить количество процентов в лейбле, а у нас Макс = 28 и value++; интуитивно понятно что 14 = 50%, как быть с остальными промежуточными значениями? Писать формулу на вывод?
    Я когда делал прогресс бар, у меня Макс всегда был 100. Допустим файлов 28. Значит double Qt = 100/28 = 3.57; //это величина за один шаг. Далее я после каждого вычисления наращивал Qt на эту величину и присваивал в ProgressBar.Value = (int)Qt;
    P.s.
    Потом до меня дошло что лучше делать как вы, а в лэйбл выводить конвертацию value значения в проценты:
    Label1.Text = "Загружено " + (100 / 28 * ProgressBar.Value) + "%";

  • @mr.alexhackchannel7368
    @mr.alexhackchannel7368 Рік тому

    А чтобы progressbar плавнее работал, можно было установить его максимум на Content-Length, а в DownloadProgressChanged устанавливать его value на BytesReceived и он будет максимально плавно и красиво работать.

  • @Ivan_sev
    @Ivan_sev 4 роки тому +1

    1) какую ты библиотеку подключил
    2) я что не могу найти видео на основном канале как ты меняешь цвет.
    3) продолжай выкладывать виде. Видео класс.

    • @XpucT
      @XpucT  4 роки тому +1

      Не понял вопрос. Таймкод, пожалуйста.

    • @Ivan_sev
      @Ivan_sev 4 роки тому

      @@XpucT я про 0:48

    • @XpucT
      @XpucT  4 роки тому

      ​@@Ivan_sev «потому что смотрите на основном канале, вот почему»
      ua-cam.com/video/gb3DMe5OJBg/v-deo.html

    • @Ivan_sev
      @Ivan_sev 4 роки тому +1

      @@XpucT спасибо.

    • @Ivan_sev
      @Ivan_sev 4 роки тому

      @@XpucT забыл спросить. Так какую библиотеку ты подключил

  • @Official_Kelvin
    @Official_Kelvin 2 роки тому

    а как сделать две разных файлов скачек через разные Butoon в ProgressBar

  • @artkar4866
    @artkar4866 4 роки тому +1

    Вопрос такой: ты говорил что непрямые ссылки по-другому работают. Я нашёл ссылку на видео в коде страницы, webclient её видит, ошибки нет, но загрузка не идёт. В чём может быть проблема?

    • @XpucT
      @XpucT  4 роки тому

      Причин может быть масса: например, в том, что сервер, с которого Ты собираешься скачать, проверяет user-agent клиента. И если видит, что это не браузер, не даёт загрузить. Первое, что делаю лично Я в таких случаях ставлю ему user-agent Mozilla:
      stackoverflow.com/a/11841680

    • @artkar4866
      @artkar4866 4 роки тому

      @@XpucT Увы, это не сработало. Можешь назвать ещё какие-нибудь причины

  • @user-ix3bq9nc8s
    @user-ix3bq9nc8s 4 роки тому

    А будут видео по БД MSSql Server? Интересно будет послушать как работать с хранимыми процедурами, добавление, удаления, редактирование. Как эту лубуду написать максимально коротко и понятно.

    • @XpucT
      @XpucT  4 роки тому

      Как раз недавно отвечал. Прямая ссылка на коммент:
      ua-cam.com/video/vNJP7PIx4DM/v-deo.html&lc=UgxE9yR9OhLyODER5fN4AaABAg

  • @Roman-tt2rg
    @Roman-tt2rg 4 роки тому +3

    Сделай, пожалуйста, ролик про передачу файлов по tcp. Достаточно болезненная тема( Лучше тебя все равно никто не объяснит

  • @user-jd8ny5sg8e
    @user-jd8ny5sg8e 4 роки тому +1

    Добрую НОЧЬ). Вы не знаете как сделать типа аргументы запуска? Ну например - Когда наживаешь правой кнопкой мыши на ехе игры какой нибудь, выбираешь свойства, то там можно ввести аргумент например "-Level (Уровень, который будет загружаться при запуске))". Вот я тоже самое хочу сделать со своей программой. Не подскажите как? Хочу сделать аргумент developermode. Буду рад любой помощи)

    • @XpucT
      @XpucT  4 роки тому +1

      Обязательно про это будет видео, но если коротко, то:
      string[] keys = Environment.GetCommandLineArgs();
      foreach (string key in keys)
      if (key.Contains("аргумиент"))
      ...

    • @user-jd8ny5sg8e
      @user-jd8ny5sg8e 4 роки тому +1

      @@XpucT Огромное спасибо. Очень жду видео!)

    • @user-jd8ny5sg8e
      @user-jd8ny5sg8e 4 роки тому

      @@XpucT Я бы ещё рекомендовал бы уже начать делать уроки по WPF. WinForms устарел уже, WPF технологичней и мощней +Можно легко, быстро и красиво сделать дизайн. Многие уже перестали писать фрейморки, библиотеки под WinForms, перешли на WPF. По UWP, он ещё сырой, но это почти тот же WPF. Не заставляю, но хотелось бы в будущем) Об достоинствах WPF над WinForms можно почитать в Вики например.

    • @XpucT
      @XpucT  4 роки тому

      @@user-jd8ny5sg8e О, про WPF не просто знаю, но и пишу. Но когда пришёл к MVVM понял, что перед тем, как делать туториалы на эту тему, нужно очень хорошо подумать, как эту паутину объяснить. Всё то, что сейчас объясняется в сети - говно полное. Поэтому пока не делаю. Нужно составить снова свою последовательность.

  • @luen6019
    @luen6019 2 роки тому +1

    В .net 6 WebClient не рекомендуется использовать если что

  • @neuro_picture
    @neuro_picture 2 роки тому

    Привет!
    Как приостановить скачивание файла, а потом возобновить? Я видел у webClient нет такой штуки, есть только отмена всего этого потока.

    • @XpucT
      @XpucT  2 роки тому

      Привет 🖐
      Простой pause не существует. Нужна своя реализация. Готовых полно.
      Вот некоторые из них: stackoverflow.com/questions/15995705/adding-pause-and-continue-ability-in-my-downloader#:~:text=unfortunately%20WebClient%20has%20no%20ways,getting%20response%20stream%20with%20flag.

  • @behemoth1621
    @behemoth1621 4 роки тому

    Хачатур, доброй ночи) Подскажи пожалуйста а как можно реализовать прогресс бар на время ответа от сервера?То есть я отправляю POST запрос на сервер и у меня пока не истек тайм-аут ответа от сервера,увеличивается прогресс бар.Как только сервер ответил,прогресс бар заполнился.И при следующем запросе сбрасывался и начинал снова считать время ответа от сервера.И т.д

    • @XpucT
      @XpucT  4 роки тому

      Привет 🎅
      Так ведь всё просто:
      while (не получил ответ)
      progressbar.Value++

    • @behemoth1621
      @behemoth1621 4 роки тому +1

      @@XpucT , дааа!Спасибо!Видимо пора спать=)

    • @behemoth1621
      @behemoth1621 4 роки тому

      @@XpucT Не, что-то не пойму как вытащить прогресс.Вот кусок кода где все делаю:
      public async Task postXMLData(string destinationUrl, string requestXml)
      {
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(destinationUrl);

      byte[] bytes;
      bytes = System.Text.Encoding.UTF8.GetBytes(requestXml);
      request.ContentType = "text/xml; encoding='utf-8'";
      request.ContentLength = bytes.Length;
      request.Method = "POST";

      try {
      Stream requestStream = await request.GetRequestStreamAsync();
      //вот тут падает по таймауту и мне нужно отловить это в прогрессбар
      requestStream.Write(bytes, 0, bytes.Length);
      requestStream.Close();
      HttpWebResponse response;
      response = (HttpWebResponse) await request.GetResponseAsync();

      if (response.StatusCode == HttpStatusCode.OK)
      textBox3.AppendText(response.StatusCode.ToString());
      {
      Stream responseStream = response.GetResponseStream();
      string responseStr = new StreamReader(responseStream).ReadToEnd();
      return responseStr;
      }
      }
      catch(WebException ex) {

      textBox3.AppendText(ex.ToString());
      }
      return null;
      }

  • @Alexander-mt4cl
    @Alexander-mt4cl 5 років тому +2

    Возможно ли поставить загрузку файла через DownloadFileAsync на паузу?

    • @XpucT
      @XpucT  5 років тому +1

      stackoverflow.com/questions/15995705/adding-pause-and-continue-ability-in-my-downloader

  • @blueboxproduction2823
    @blueboxproduction2823 4 роки тому +3

    ВСё ХрисТ жду wcf & unity

  • @sheriff478
    @sheriff478 3 роки тому +2

    Привет, спасибо огромное за уроки. Пишу свою первую курсовую на C#(Построение фракталов). Без Ваших видео-роликов было бы всё очень долго и нудно :) У меня вопрос- как привязать прогрессбар например к методу отрисовки Фрактального Дерева на пикчербоксе, программа постоянно дропается на первом шаге. Может кто знает?)

    • @XpucT
      @XpucT  3 роки тому

      Привет 🖐
      Нужен код, чтобы понимать как организовано фрактальное дерево.

  • @UFO26
    @UFO26 Рік тому +1

    А потом админы сайта виртуальная коробка орг, ругались на ддос атаки)

  • @kodersurocecode267
    @kodersurocecode267 5 років тому +2

    Как можно достать имя и расширение файла, во время загрузки через WebClient?, в интернете инструкцию не нашёл.

    • @XpucT
      @XpucT  5 років тому

      1. От загружаемого файла просто берём имя без пути. То есть убираем / в адресе.
      2. Потом из имени берём всё то, что идёт после последней точки - это будет расширением.

    • @adamiyy
      @adamiyy 5 років тому

      Я сделал так: string name = Path.GetFileName(URL);

    • @kodersurocecode267
      @kodersurocecode267 5 років тому

      @@adamiyy tnx

  • @matosamp2044
    @matosamp2044 2 роки тому +1

    В Directory ошибка

  • @user-ki4mi6tc8v
    @user-ki4mi6tc8v 2 роки тому

    у тебя есть уроки по ассихронности?

    • @XpucT
      @XpucT  2 роки тому +1

      Как насчёт нажать на ссылочку плейлиста по урокам?
      ua-cam.com/play/PL05SB3rBbUsraqiEUeS70RKhVAu97nGeb.html

  • @user-jd8ny5sg8e
    @user-jd8ny5sg8e 4 роки тому

    Здраствуйте, у меня тут проблема. У меня типа Iso Downloader, а это значит что файлы большие будут качаться, и как бы я код написал, нету ошибок и даже предупреждений. И когда образ качаеться, то когда доходит до 19 кб, всё, перестаёт качаться. Буду рад любой помощи.

    • @XpucT
      @XpucT  4 роки тому

      Добрый день.
      А что собственно не так, если придерживаться того, что в видео?
      Может на сервере стоит Firewall? Пробовали что-то другое скачать?

    • @user-jd8ny5sg8e
      @user-jd8ny5sg8e 4 роки тому +1

      @@XpucT Образы залиты на Яндекс Диск. Если просто Web Client, без всяких прогресс баров, скоростей загрузки и размера, то качаеться нормально. Чуствую придёться пересмотреть видео) Спасибо за помощь.

    • @user-jd8ny5sg8e
      @user-jd8ny5sg8e 4 роки тому +1

      Я уже кажеться разобрался в чём проблема) Спасибо ещё раз

  • @morozkoshow1840
    @morozkoshow1840 3 роки тому

    Всем привет подскажите пожалуйста как реализовать следующие
    В видео показанно как скачивает виртуал бок и выводят в лейбл и прогресс бар .
    Но у меня возник вопрос.
    К примеру я создал класс update в него заехал код скачивания.
    Но прогресс бар и лэйбал находятся на форуме к примеру FormUpdate как мне передать данные скачки из класса на форму.

    • @XpucT
      @XpucT  3 роки тому

      Привет 🖐
      Написал две программы для Тебя. Наглядные примеры с делегатом и с полем.
      www.upload.ee/files/12007401/Class_to_Form.rar.html
      Также стоит ознакомиться с этой страницей для общего ознакомления:
      www.cyberforum.ru/windows-forms/thread110436.html

    • @morozkoshow1840
      @morozkoshow1840 3 роки тому

      @@XpucT спасибо огромное.
      Буду скоро дома гляну.
      А еще вопрос.
      Как определить что поток закончил работу и оповестить что программа закончила скачивание.
      И как можно реализовать установку аватара.
      То есть пользователь установил фото и оно сохранилось в программе.
      Я знаю можно картинку переводить в байты и назад.
      Но чет второй день не могу реализовать это

    • @morozkoshow1840
      @morozkoshow1840 3 роки тому +1

      @@XpucT лучший учитель по с#
      Подписка лайк 100%

    • @XpucT
      @XpucT  3 роки тому

      // Как оповестить, что программа закончила скачивание:
      bool downloading = true;
      async void button1_Click(object sender, EventArgs e)
      {
      SomeTask();
      while (downloading)
      await Task.Delay(1000);
      // Тут оповещаем о том, что скачивание завершено
      // Программа не доберётся до сюда пока downloading = true
      }
      async void SomeTask()
      {
      await Task.Run(() =>
      {
      // Здесь выполняется скачивание, в конце которого делаем working = false
      // код
      // код
      // код
      // код
      downloading = false;
      });
      }
      // Касаемо аватара
      // Как в pictureBox воткнуть изображение с компа:
      pictureBox1.Image = Image.FromFile(@"С:\Morozko\Picture.jpg");
      // Как в pictureBox воткнуть аватар из онлайна:
      using (Stream wat = WebRequest.Create("ссылка/На/Картинку.jpg").GetResponse().GetResponseStream())
      AttachScreen.BackgroundImage = Bitmap.FromStream(wat);

  • @Ivan_sev
    @Ivan_sev 4 роки тому +1

    ты снял видео как скачать по ссылке файл, а можешь снять видео как наоборот отправить файл по ссылке или в Яндекс диск. " мне просто надо сделать так чтобы папка с работами на Яндекс диск отправлялись".

    • @XpucT
      @XpucT  4 роки тому

      У Яндекса свои инструменты для этого. Яндекс.Диск.

  • @wilssy6233
    @wilssy6233 5 років тому +2

    Всем привет! Я прошу прощения что не по теме. У меня в listBox принимаются значения с базы данных ( select ), и я бы хотел сделать поиск элемента в самом listBox - е, но не знаю как это нормально сделать. Буду очень благодарен если кто-то поможет:)

    • @adamiyy
      @adamiyy 5 років тому +2

      Не юзал базы данных с listBox, поэтому не уверен. Но я обычно делаю так когда нужно в листбоксе найти какой-нить элемент по стрингу:
      int objectIndex = listBox1.Items.IndexOf("Элемент который нужно найти");
      string str = listBox1.Items[ObjectIndex].ToString();

    • @wilssy6233
      @wilssy6233 5 років тому +1

      @@adamiyy Спасибо большое за помощь:) но я уже вместо listBox поставил dataGridView. Там намного легче реализовать поиск и лучше отображает принятые с базы значения.

  • @tyuop
    @tyuop 5 років тому +2

    Хотелось бы еще узнать как вместо IE-браузера в приложении использовать Chromium или что-то, что будет показывать веб-страницы нормально (некоторые js-скрипты выполняются некорректно и сайты предупреждают об этом). Спасибо!

    • @tyuop
      @tyuop 5 років тому

      (На данный момент использую второе приложение на NWjs с браузером, которое открывается поверх приложения в стиле popup)

    • @tyuop
      @tyuop 5 років тому

      Дело в том, что допустим на Windows 7 мое приложение поведет себя неправильно при например ie7, а не 11

    • @chokayes7830
      @chokayes7830 5 років тому

      @@tyuop Тоже помучался с этим. Попробуй CefSharp, Chromium Embedded Framework (CEF). Все работает на ура.

  • @antonolesov144
    @antonolesov144 4 роки тому

    Привет. А как также, только при копировании файлов?

    • @XpucT
      @XpucT  4 роки тому

      Привет 🖐
      stackoverflow.com/questions/6044629/file-copy-with-progress-bar

    • @antonolesov144
      @antonolesov144 4 роки тому

      @@XpucT спасибо!

  • @IOWN5EZ
    @IOWN5EZ Рік тому +1

    Прогресс бар это хорошо но делать ему стиль сложно. Проще использовать PictureBox как прогресс бар.

    • @XpucT
      @XpucT  Рік тому

      Да, порой хитростью решать вопросы и красивее и меньше кода и проще.

    • @IOWN5EZ
      @IOWN5EZ Рік тому

      @@XpucT Да как то выкручиваться приходится недавно начал изучать. Винформ устарел но впф вгоняет меня в ужас)

  • @user-dy9lg9cn1s
    @user-dy9lg9cn1s 5 років тому

    как ты поменял цвет процес бара?

    • @XpucT
      @XpucT  5 років тому +1

      ua-cam.com/video/gb3DMe5OJBg/v-deo.html

    • @user-dy9lg9cn1s
      @user-dy9lg9cn1s 4 роки тому

      @@XpucTспасибо)

  • @akasteroid2625
    @akasteroid2625 Рік тому +1

    нужно чтоб когда нажимаешь F1
    перекидывало на видосы с канала

  • @ko-games7768
    @ko-games7768 4 роки тому

    А как скачать два файла с HTTP сервера а информацию за загрузку вывести в один progressBar?

    • @XpucT
      @XpucT  4 роки тому

      Парсить оба потока в отдельную переменную и уже её выводить на экран.
      То есть каждый поток накручивает не интерфейс, а переменную, которая крутится в интерфейсе.

    • @ko-games7768
      @ko-games7768 4 роки тому

      @@XpucT Спасибо что быстро ответили. Может видосик по этой теме сделаете а то я только начал учится этому не совсем понимаю то что вы говорите.

    • @XpucT
      @XpucT  4 роки тому

      @@ko-games7768 так тут целый курс =)

    • @tatarnikov1000
      @tatarnikov1000 4 роки тому

      Поддерживаю KO-GAMES хотя бы небольшой пример.

    • @XpucT
      @XpucT  4 роки тому

      @@tatarnikov1000 Пример:
      Если файла 2, то разделить значение Percentage на 2 и присвоить к Value. Если 3, то разделить на 3. Всё просто.

  • @user-ww3ri5ug2w
    @user-ww3ri5ug2w 3 роки тому

    Щас в моем лоадер читов будет автообновления 🖤

  • @artemklokov8182
    @artemklokov8182 4 роки тому

    24:00 компилятор ругается на "e" в строке (по вашему) 33 (ошибка СS0136)

    • @XpucT
      @XpucT  4 роки тому

      "e" уже есть? поэтому замените на "a" например.

    • @artemklokov8182
      @artemklokov8182 4 роки тому

      @@XpucT это я сделал) просто по-моему у вас в коде "e" так же встречается 2 раза, и он работает

    • @XpucT
      @XpucT  4 роки тому +1

      @@artemklokov8182 потому что в главном методе нет конфликта с этим самым 'e'

  • @Vchaosu
    @Vchaosu Рік тому

    Только в итоге exe он качает как надо, а вот остальные файлы с другими расширениями упирауются в 100 кбайт

  • @AndriySylyvonyuk
    @AndriySylyvonyuk 2 роки тому +1

    Дай ссылку на основной канал. Спб

    • @XpucT
      @XpucT  2 роки тому +1

      ua-cam.com/users/JailbreakVideo

  • @user-si6ww3gi2l
    @user-si6ww3gi2l 2 роки тому +1

    а как быстро коментировать строки?

    • @XpucT
      @XpucT  2 роки тому

      i.imgur.com/aND9hWf.png

    • @user-si6ww3gi2l
      @user-si6ww3gi2l 2 роки тому

      @@XpucT спасибо, но я думал будет другой способ. На видосе ты это делал так быстро

  • @UCrLTXQEiJDjsYNOiCyq
    @UCrLTXQEiJDjsYNOiCyq Рік тому +1

    Паузы нет в WebClient

    • @UCrLTXQEiJDjsYNOiCyq
      @UCrLTXQEiJDjsYNOiCyq Рік тому

      Не подскажите как сделать?) Или узнать где люди уже сделали)

  • @animationfantasymystic7311
    @animationfantasymystic7311 3 роки тому

    void Form1_Load(object sender, EventArgs e)
    {
    progressBar1.Visible = false;
    textBox1.Text = "Вставьте сюда ссылку";
    }
    private void button1_Click(object sender, EventArgs e)
    {
    string url = textBox1.Text;
    using (WebClient wc = new WebClient())
    {
    wc.OpenRead(url);
    string size = (Convert.ToDouble(wc.ResponseHeaders["Content-Length"]) / 1048576).ToString("#.# МБ");
    wc.DownloadProgressChanged += (s, c) =>
    {
    label1.Text = $"Размер файла{size} Загружено: {c.ProgressPercentage}%";
    label2.Text = $"Загружено: {c.ProgressPercentage}%";
    progressBar1.Value = c.ProgressPercentage; };
    wc.DownloadFileAsync(new Uri(url), @"C:\Down\Skype");
    progressBar1.Visible = true;
    }

    }
    private void textBox1_MouseClick(object sender, MouseEventArgs e)
    {
    textBox1.Text = "";
    button1.Visible = true;
    }
    }

  • @SEOmaster_real
    @SEOmaster_real 4 роки тому

    Просил видео по http а оно оказывается есть)))
    Единственное я не разобрался, как сделать так чтобы после загрузки файла он не сохранялся автоматически на раб. стол, а вылетало диалоговое окошко "Сохранить как..."?
    UPD:
    Фух, просидел 2 часа и нашел таки рабочее решение, оставлю здесь может кому пригодится (можете сразу тестить грузит гугл картинку):
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Net;
    namespace WForms1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
    {
    }
    private void button1_Click(object sender, EventArgs e)
    {
    var dialog = new SaveFileDialog();
    dialog.Filter = "PNG (*.png)|*.png";
    var result = dialog.ShowDialog(); //shows save file dialog
    if (result == DialogResult.OK)
    {
    var wClient = new WebClient();
    wClient.DownloadFile("www.google.com/logos/doodles/2019/fall-2019-northern-hemisphere-4762325427945472-s.png", dialog.FileName);
    }
    }
    }
    }

    • @SEOmaster_real
      @SEOmaster_real 4 роки тому

      Буду благодарен если научите как отдавать имя файла в диалоговое окно сохранения)

    • @alexeygudan
      @alexeygudan 4 роки тому

      @@SEOmaster_real В saveFileDialog есть FileName, это имя приложения

  • @awfsdgsgeefdgwef
    @awfsdgsgeefdgwef 5 років тому +3

    А где домашка?

    • @XpucT
      @XpucT  5 років тому +2

      В качестве домашки требуется сделать симпатичный доунлоадер 👍

  • @tatarnikov1000
    @tatarnikov1000 4 роки тому

    Поддерживаю KO-GAMES как прикрутить второй файл хотя бы небольшой пример.

    • @XpucT
      @XpucT  4 роки тому

      Пример:
      Если файла 2, то разделить значение Percentage на 2 и присвоить к Value. Если 3, то разделить на 3. Всё просто.

    • @tatarnikov1000
      @tatarnikov1000 4 роки тому

      @@XpucT Спасибо. я примерно в этом направлении пробовал просто сообразить
      не могу как правильно это сделать

    • @XpucT
      @XpucT  4 роки тому

      @@tatarnikov1000 в рамках 20 уроков не может быть, чтобы было что-то не понятно. Тем более складывание и деление.

    • @tatarnikov1000
      @tatarnikov1000 4 роки тому

      @@XpucT я не могу правильно цикл сделать через foreach у меня ошибка
      "WebClient не поддерживает параллельные операции ввода-вывода."

    • @XpucT
      @XpucT  4 роки тому

      @@tatarnikov1000 показывай код.

  • @_DRIFTULA_
    @_DRIFTULA_ 2 роки тому

    "Смотреть как поменять цвет ProgressBar(а) на основном канале", а ссылки на видео нет... Умно (нет).

    • @XpucT
      @XpucT  2 роки тому

      ua-cam.com/play/PL0U1uvNv2tf6DduPOCc9-IGJjdVghlvo_.html

  • @fixegg463
    @fixegg463 2 роки тому

    15:04

  • @fixegg463
    @fixegg463 2 роки тому

    9:44

  • @user-nr4jf9rt4h
    @user-nr4jf9rt4h 5 років тому

    и домашнего задания нет :(

    • @XpucT
      @XpucT  5 років тому

      Визуально мы тут почти ничего хитрого не делаем, поэтому в качестве домашнего задания можно просто потренировать навыки написания событий и обработчиков для загрузки. В следующем видео, как раз упоминается домашка по этой теме 👍

    • @user-nr4jf9rt4h
      @user-nr4jf9rt4h 5 років тому +1

      @@XpucT да я видел там парень написал loader, я уже до LINQа дошёл, но смотреть и вникать буду завтра

  • @fixegg463
    @fixegg463 2 роки тому

    20:15

  • @K14M
    @K14M Рік тому

    А как через переменные среды найти папк "Загрузки"? Сейчас я через реестр ее нахожу, где бы она ни была, а иначе можно?
    downloadFolder = Registry.GetValue(@"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", "{374DE290-123F-4565-9164-39C4925E467B}", @"D:\Downloads").ToString();