Тёмный

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

XpucT
Подписаться 95 тыс.
Просмотров 41 тыс.
50% 1

Донаты и на кофе ➜ t.me/win10twea...
Эксклюзив для спонсоров ➜ / xpuct
Если недоступна спонсорка ➜
Основной канал:
/ jailbreakvideo
Форум по C#:
win10tweaker.r...
#ProgressBar #WebClient #HttpWebRequest #WebResponse #СиSharp #СиШарп

Опубликовано:

 

26 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 210   
@ДанилЛафин
@ДанилЛафин Месяц назад
Лучший) Твои уроки всегда будут актуальны, спасибо
@redtayron6390
@redtayron6390 5 лет назад
Спасибо за уроки Хачатур, глаза разбегаются с чего бы начать)
@ИванСедов-ь5р
@ИванСедов-ь5р 5 лет назад
Это тот ролик который я ждал! Спасибо тебе за старания)
@oilondabeats9011
@oilondabeats9011 2 года назад
буквально месяца 4 назад я ненавидил твои видосы ибо нех непонятно было .... сегодня, прям мило посмотреть все доходчиво ,все ясно :)
@ТимофейБелый-ф7ы
@ТимофейБелый-ф7ы 4 года назад
Минимум воды - максимум пользы, Спасибо!
@lamax847
@lamax847 5 лет назад
Отличные уроки, лайк!
@RISE26127
@RISE26127 Год назад
Необязательно ставить запятую что бы посмотреть что необходимо для той или иной функции итд, достаточно нажать crtl+shift+пробел
@Прикольноепроектноепрограммиро
Сперва думал, каким лешим ProgressBar с HTTP в одном ролике, а вот оно что оказывается. Прикольно. Надо тоже похожую штуку сделать будет
@nikomag9785
@nikomag9785 5 лет назад
Спасибо Вам большое! Три дня забивал голову многопоточностью чтобы Progressbar не зависал - посмотрел видео - сделал за 20 минут!
@РоманСуворов-й2т
Огонь, спасибо за контент ! Подписка, лайк)
@VitaliyZlobin
@VitaliyZlobin 4 года назад
Привет!) Благодарю за уроки - доступные, живые) Было бы не плохо узнать подробней про работу с API. Авторизация, запросы, ответы, подводные камни...
@-vip-6387
@-vip-6387 4 месяца назад
Супер круто!!! Спасибо Тут мысль о подключении TCP Udp когда используешь Uri, я имею ввиду пример приложения Wirewall
@nikitanikitenko5338
@nikitanikitenko5338 5 лет назад
Лучший учитель
@Vchaosu
@Vchaosu Год назад
Урок просто огонь, побольше бы таких
@ВячеславСибиряк
Суперр!
@Gelenbagen
@Gelenbagen 5 лет назад
Спасибо) Понятно и коротко)
@g1ldman
@g1ldman Год назад
вы просто красавчик !!!
@the_rise2324
@the_rise2324 4 года назад
Хороший урок, очень понятно
@Ivan_sev
@Ivan_sev 4 года назад
1) какую ты библиотеку подключил 2) я что не могу найти видео на основном канале как ты меняешь цвет. 3) продолжай выкладывать виде. Видео класс.
@XpucT
@XpucT 4 года назад
Не понял вопрос. Таймкод, пожалуйста.
@Ivan_sev
@Ivan_sev 4 года назад
@@XpucT я про 0:48
@XpucT
@XpucT 4 года назад
​@@Ivan_sev «потому что смотрите на основном канале, вот почему» ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-gb3DMe5OJBg.html
@Ivan_sev
@Ivan_sev 4 года назад
@@XpucT спасибо.
@Ivan_sev
@Ivan_sev 4 года назад
@@XpucT забыл спросить. Так какую библиотеку ты подключил
@glebkrel5526
@glebkrel5526 3 года назад
Хорошие уроки !!! Спс. Запрашивать размер данных через Header не всегда хорошо. В данном случае хедер генерируется сервером хостинга от куда качаются данные, но если у вас будет серверная программа, которая бы принимала данные от другой программы, тогда значение Content-Length будет таким, каким его сделает программист в программе-клиенте. И при его ошибке может получиться несоответствие, так как может прийти данных условно на 2Гб а в контент ленгс будет просто левое значение, например 100)))
@RosemiNext
@RosemiNext Год назад
WebClient нельзя поставить на паузу... Единственное, что огорчает. Спасибо. Я знаю, что видео два года!)
@kashiroko6632
@kashiroko6632 4 года назад
великолепно!
@archdeucetux5757
@archdeucetux5757 4 года назад
хорошие видосики, спасибо
@Iamnotagenius
@Iamnotagenius 4 года назад
Когда хочешь передать в ToString параметр, его можно передать с помощью интерполяции через двоеточие, возьму твой пример: $"Загружено: {e.ProgressPercentage}% ({e.BytesReceived / 1048576:#.#} МБ)"
@mr.alexhackchannel7368
@mr.alexhackchannel7368 Год назад
А чтобы progressbar плавнее работал, можно было установить его максимум на Content-Length, а в DownloadProgressChanged устанавливать его value на BytesReceived и он будет максимально плавно и красиво работать.
@Sergioshe
@Sergioshe 4 года назад
Спасибо.
@UFO26
@UFO26 Год назад
А потом админы сайта виртуальная коробка орг, ругались на ддос атаки)
@UFO26
@UFO26 Год назад
11:25 или правой кнопкой мыши по переменной/методу, во всплывающем меню строка: "переименовать"
@setfps
@setfps 4 года назад
Годно.
@taifunov
@taifunov 5 лет назад
Можешь сделать видео урок как например парсить какую-то инфу с интернета? Пример: вставляешь ссылку на какой-то сайт, нажимаешь парсить и получаешь ту инфу, которая тебе нужна, но на примере c#
@XpucT
@XpucT 5 лет назад
Мы проходили это в этом видео: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-HLBSTuGMiqI.html Главное - не пропускать материал и не перематывать =)
@stibushix4779
@stibushix4779 Год назад
Приветствую! После просмотра урока у меня остались вопросы: 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 Год назад
@stibushix4779
@stibushix4779 Год назад
@@XpucT вижу ответ из одного слова "Шкот", значение которого не понимаю
@blueboxproduction2823
@blueboxproduction2823 5 лет назад
ВСё ХрисТ жду wcf & unity
@zapiton
@zapiton 5 лет назад
Привет Хачатур, как насчет того чтобы ты сделал видос, где ты от а до я создаешь какую то программу(от дизайна формы до публикации) это было бы интересно)
@zapiton
@zapiton 5 лет назад
На пример что-то типа punto switcher'а
@Roman-tt2rg
@Roman-tt2rg 5 лет назад
Сделай, пожалуйста, ролик про передачу файлов по tcp. Достаточно болезненная тема( Лучше тебя все равно никто не объяснит
@Chrescoe1
@Chrescoe1 5 лет назад
Привет, очень хочу узнать можно ли красиво менять версию запускаемого браузера WebBrowser? И можно ли в одном приложении запускать разные версии webBrowser В интернетах нашел только способ через ключ реестра FEATURE_BROWSER_EMULATION, но то не позволит мне запустить 2 браузера разных версий(ie7, ie11) в одном приложении
@XpucT
@XpucT 5 лет назад
Привет 🖐 Любопытный вопрос. Отмечу себе и попробую посмотреть, какие там проблемы.
@adamiyy
@adamiyy 5 лет назад
Я как то пытался встроить chromium в программу чтобы гугл карты нормально высвечивались, скачал библиотеку в итоге программа превратилась в кашу весом 300мб. Так что тоже интересно)
@tkaisert9745
@tkaisert9745 5 лет назад
интересно
@kotbaziliokotbazilio9818
@kotbaziliokotbazilio9818 4 года назад
думаю было бы интересно, если бы Вы показали пару примеров по переопределению визуальных компонентов
@akasteroid2625
@akasteroid2625 2 года назад
нужно чтоб когда нажимаешь F1 перекидывало на видосы с канала
@XpucT
@XpucT 2 года назад
@IOWN5EZ
@IOWN5EZ Год назад
Прогресс бар это хорошо но делать ему стиль сложно. Проще использовать PictureBox как прогресс бар.
@XpucT
@XpucT Год назад
Да, порой хитростью решать вопросы и красивее и меньше кода и проще.
@IOWN5EZ
@IOWN5EZ Год назад
@@XpucT Да как то выкручиваться приходится недавно начал изучать. Винформ устарел но впф вгоняет меня в ужас)
@Ivan_sev
@Ivan_sev 4 года назад
ты снял видео как скачать по ссылке файл, а можешь снять видео как наоборот отправить файл по ссылке или в Яндекс диск. " мне просто надо сделать так чтобы папка с работами на Яндекс диск отправлялись".
@XpucT
@XpucT 4 года назад
У Яндекса свои инструменты для этого. Яндекс.Диск.
@Alexander-mt4cl
@Alexander-mt4cl 5 лет назад
Возможно ли поставить загрузку файла через DownloadFileAsync на паузу?
@XpucT
@XpucT 5 лет назад
stackoverflow.com/questions/15995705/adding-pause-and-continue-ability-in-my-downloader
@tyuop
@tyuop 5 лет назад
Как выставить timeout на определенное значение? Например, при LongPool сервере отправляя запрос, я получу ответ при новом действии. И действие при событии error; заданный timeout превышен.
@XpucT
@XpucT 5 лет назад
ru.stackoverflow.com/questions/610009/long-polling-c
@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) + "%";
@smart_electronics_il
@smart_electronics_il Год назад
Добрый день) Зашел на основной канал, так и не нашел видео, как можно сменить цвет прогресс бара... А реально ещё сменить задний фон ?
@akasteroid2625
@akasteroid2625 2 года назад
есть пара вопросов не по теме 1 - есть разные числа double которые показываю в текстБоксе когда число 1.0386 (не с запятой а с точкой) то конвертирует в стринг и выдает в текстбоксе как 10386 (тоесть убирает точку) как мне правильно конвертировать в стринг? 2 - также у некоторых чисел после запятой могут быть 3 знака и может 8 тоесть 1.003 или 0.00030049 если при конвертации в стринг пишу аргумент число.ToString("F3 или F8") это не по феншую как определять сколько знаков после запятой (в принципе просто посчитать количестко символов) но как это записать в число.ToString(сюда) чтобы выдавало правильное количество знаков после запятой ? а ну и вместо запятой должна быть точка ссори за стресс ;)
@mikepytchak8883
@mikepytchak8883 5 лет назад
Привет ты лучший. Спасибо тебе) Почему не используешь ReSharper ?
@XpucT
@XpucT 5 лет назад
Привет 🖐 Думал сделать отдельно даже Portable. Думаю доберёмся.
@mikepytchak8883
@mikepytchak8883 5 лет назад
​@@XpucT C ReSharper надо разобраться в настройках чтобы получить перфоманс потому что он работает в процессе самой VS и для него там почти нет места. И даже на i5-том с 16 RAM лагает дико(((
@adamiyy
@adamiyy 5 лет назад
@@mikepytchak8883 Согласен, очень уж удобная штука, но и ждать каждый раз по 40 секунд пока грузится ReSharper как-то не очень.
@sheriff478
@sheriff478 3 года назад
Привет, спасибо огромное за уроки. Пишу свою первую курсовую на C#(Построение фракталов). Без Ваших видео-роликов было бы всё очень долго и нудно :) У меня вопрос- как привязать прогрессбар например к методу отрисовки Фрактального Дерева на пикчербоксе, программа постоянно дропается на первом шаге. Может кто знает?)
@XpucT
@XpucT 3 года назад
Привет 🖐 Нужен код, чтобы понимать как организовано фрактальное дерево.
@awfsdgsgeefdgwef
@awfsdgsgeefdgwef 5 лет назад
А где домашка?
@XpucT
@XpucT 5 лет назад
В качестве домашки требуется сделать симпатичный доунлоадер 👍
@NoName-tk4ym
@NoName-tk4ym Год назад
Здорово! Интересно, а есть видео как делается export из MySQL в excel таблицу. Там количество строк меняется и интересно процент загрузки как делается :)
@SEOmaster_real
@SEOmaster_real 5 лет назад
Просил видео по 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 5 лет назад
Буду благодарен если научите как отдавать имя файла в диалоговое окно сохранения)
@alexeygudan
@alexeygudan 5 лет назад
@@SEOmaster_real В saveFileDialog есть FileName, это имя приложения
@artkar4866
@artkar4866 4 года назад
Вопрос такой: ты говорил что непрямые ссылки по-другому работают. Я нашёл ссылку на видео в коде страницы, webclient её видит, ошибки нет, но загрузка не идёт. В чём может быть проблема?
@XpucT
@XpucT 4 года назад
Причин может быть масса: например, в том, что сервер, с которого Ты собираешься скачать, проверяет user-agent клиента. И если видит, что это не браузер, не даёт загрузить. Первое, что делаю лично Я в таких случаях ставлю ему user-agent Mozilla: stackoverflow.com/a/11841680
@artkar4866
@artkar4866 4 года назад
@@XpucT Увы, это не сработало. Можешь назвать ещё какие-нибудь причины
@luen6019
@luen6019 3 года назад
В .net 6 WebClient не рекомендуется использовать если что
@andreypokrovskiy7197
@andreypokrovskiy7197 4 года назад
Хачатур, спасибо огромное! как обычно все доступно и просто. Подскажи пожалуйста, как при удалении n-количества файлов в папке ПРОПУСТИТЬ/НЕ ТРОГАТЬ те которые заняты каким-либо процессом? выдает ошибку ( System.IO.IOException: "Процесс не может получить доступ к файлу ).
@XpucT
@XpucT 4 года назад
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 года назад
@@XpucT Спасибо большое! понял в какую сторону копать !!!! foreach (var file in Directory.GetFiles($@"C:\Users\{Environment.UserName}\AppData\Local\Temp")) { try { File.Delete(file); } catch { }
@UCrLTXQEiJDjsYNOiCyq
@UCrLTXQEiJDjsYNOiCyq Год назад
Паузы нет в WebClient
@UCrLTXQEiJDjsYNOiCyq
@UCrLTXQEiJDjsYNOiCyq Год назад
Не подскажите как сделать?) Или узнать где люди уже сделали)
@ИльяГордин-б2б
@ИльяГордин-б2б 3 года назад
Щас в моем лоадер читов будет автообновления 🖤
@eddypartey1075
@eddypartey1075 3 года назад
чит для какой игры?
@kodersurocecode267
@kodersurocecode267 5 лет назад
Как можно достать имя и расширение файла, во время загрузки через WebClient?, в интернете инструкцию не нашёл.
@XpucT
@XpucT 5 лет назад
1. От загружаемого файла просто берём имя без пути. То есть убираем / в адресе. 2. Потом из имени берём всё то, что идёт после последней точки - это будет расширением.
@adamiyy
@adamiyy 5 лет назад
Я сделал так: string name = Path.GetFileName(URL);
@kodersurocecode267
@kodersurocecode267 5 лет назад
@@adamiyy tnx
@wilssy6233
@wilssy6233 5 лет назад
Всем привет! Я прошу прощения что не по теме. У меня в listBox принимаются значения с базы данных ( select ), и я бы хотел сделать поиск элемента в самом listBox - е, но не знаю как это нормально сделать. Буду очень благодарен если кто-то поможет:)
@adamiyy
@adamiyy 5 лет назад
Не юзал базы данных с listBox, поэтому не уверен. Но я обычно делаю так когда нужно в листбоксе найти какой-нить элемент по стрингу: int objectIndex = listBox1.Items.IndexOf("Элемент который нужно найти"); string str = listBox1.Items[ObjectIndex].ToString();
@wilssy6233
@wilssy6233 5 лет назад
@@adamiyy Спасибо большое за помощь:) но я уже вместо listBox поставил dataGridView. Там намного легче реализовать поиск и лучше отображает принятые с базы значения.
@Атчачат
@Атчачат 5 лет назад
Добрую НОЧЬ). Вы не знаете как сделать типа аргументы запуска? Ну например - Когда наживаешь правой кнопкой мыши на ехе игры какой нибудь, выбираешь свойства, то там можно ввести аргумент например "-Level (Уровень, который будет загружаться при запуске))". Вот я тоже самое хочу сделать со своей программой. Не подскажите как? Хочу сделать аргумент developermode. Буду рад любой помощи)
@XpucT
@XpucT 5 лет назад
Обязательно про это будет видео, но если коротко, то: string[] keys = Environment.GetCommandLineArgs(); foreach (string key in keys) if (key.Contains("аргумиент")) ...
@Атчачат
@Атчачат 5 лет назад
@@XpucT Огромное спасибо. Очень жду видео!)
@Атчачат
@Атчачат 5 лет назад
@@XpucT Я бы ещё рекомендовал бы уже начать делать уроки по WPF. WinForms устарел уже, WPF технологичней и мощней +Можно легко, быстро и красиво сделать дизайн. Многие уже перестали писать фрейморки, библиотеки под WinForms, перешли на WPF. По UWP, он ещё сырой, но это почти тот же WPF. Не заставляю, но хотелось бы в будущем) Об достоинствах WPF над WinForms можно почитать в Вики например.
@XpucT
@XpucT 5 лет назад
@@Атчачат О, про WPF не просто знаю, но и пишу. Но когда пришёл к MVVM понял, что перед тем, как делать туториалы на эту тему, нужно очень хорошо подумать, как эту паутину объяснить. Всё то, что сейчас объясняется в сети - говно полное. Поэтому пока не делаю. Нужно составить снова свою последовательность.
@NIKITA-jy5pv
@NIKITA-jy5pv 3 года назад
Привет! Какую музыку используешь?
@LineAngel
@LineAngel 4 года назад
Здравствуйте, подскажите пожалуйста как привязать прогрессбар к запуску программы через сетевой ресурс (локальная сеть) или программы находящейся на пк с отображением загрузки в прогрессбар. Заранее спасибо.
@Official_Kelvin
@Official_Kelvin 2 года назад
а как сделать две разных файлов скачек через разные Butoon в ProgressBar
@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.
@Vchaosu
@Vchaosu Год назад
Только в итоге exe он качает как надо, а вот остальные файлы с другими расширениями упирауются в 100 кбайт
@АбдулхакимМагомедов-ж6у
А будут видео по БД MSSql Server? Интересно будет послушать как работать с хранимыми процедурами, добавление, удаления, редактирование. Как эту лубуду написать максимально коротко и понятно.
@XpucT
@XpucT 5 лет назад
Как раз недавно отвечал. Прямая ссылка на коммент: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-vNJP7PIx4DM.html&lc=UgxE9yR9OhLyODER5fN4AaABAg
@ЕвгенийКривоносов-о1ъ
у тебя есть уроки по ассихронности?
@XpucT
@XpucT 2 года назад
Как насчёт нажать на ссылочку плейлиста по урокам? ru-vid.com/group/PL05SB3rBbUsraqiEUeS70RKhVAu97nGeb
@AndriySylyvonyuk
@AndriySylyvonyuk 2 года назад
Дай ссылку на основной канал. Спб
@XpucT
@XpucT 2 года назад
ru-vid.com
@tyuop
@tyuop 5 лет назад
Хотелось бы еще узнать как вместо IE-браузера в приложении использовать Chromium или что-то, что будет показывать веб-страницы нормально (некоторые js-скрипты выполняются некорректно и сайты предупреждают об этом). Спасибо!
@tyuop
@tyuop 5 лет назад
(На данный момент использую второе приложение на NWjs с браузером, которое открывается поверх приложения в стиле popup)
@tyuop
@tyuop 5 лет назад
Дело в том, что допустим на Windows 7 мое приложение поведет себя неправильно при например ie7, а не 11
@chokayes7830
@chokayes7830 5 лет назад
@@tyuop Тоже помучался с этим. Попробуй CefSharp, Chromium Embedded Framework (CEF). Все работает на ура.
@РональдЧаплин
@РональдЧаплин 4 года назад
Подскажите, а можно ли при помощи WebClient докачивать файлы? Допустим начал скачивание файла, а потом завершил программу и при новом запуске программы заставить докачать файл с той точки где он остановил скачивание
@XpucT
@XpucT 4 года назад
stackoverflow.com/a/16004845
@безбашенийпро
@безбашенийпро 3 года назад
а как быстро коментировать строки?
@XpucT
@XpucT 3 года назад
i.imgur.com/aND9hWf.png
@безбашенийпро
@безбашенийпро 3 года назад
@@XpucT спасибо, но я думал будет другой способ. На видосе ты это делал так быстро
@artemklokov8182
@artemklokov8182 5 лет назад
24:00 компилятор ругается на "e" в строке (по вашему) 33 (ошибка СS0136)
@XpucT
@XpucT 5 лет назад
"e" уже есть? поэтому замените на "a" например.
@artemklokov8182
@artemklokov8182 5 лет назад
@@XpucT это я сделал) просто по-моему у вас в коде "e" так же встречается 2 раза, и он работает
@XpucT
@XpucT 5 лет назад
@@artemklokov8182 потому что в главном методе нет конфликта с этим самым 'e'
@behemoth1621
@behemoth1621 4 года назад
Хачатур, доброй ночи) Подскажи пожалуйста а как можно реализовать прогресс бар на время ответа от сервера?То есть я отправляю POST запрос на сервер и у меня пока не истек тайм-аут ответа от сервера,увеличивается прогресс бар.Как только сервер ответил,прогресс бар заполнился.И при следующем запросе сбрасывался и начинал снова считать время ответа от сервера.И т.д
@XpucT
@XpucT 4 года назад
Привет 🎅 Так ведь всё просто: while (не получил ответ) progressbar.Value++
@behemoth1621
@behemoth1621 4 года назад
@@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; }
@_DRIFTULA_
@_DRIFTULA_ 3 года назад
"Смотреть как поменять цвет ProgressBar(а) на основном канале", а ссылки на видео нет... Умно (нет).
@XpucT
@XpucT 3 года назад
ru-vid.com/group/PL0U1uvNv2tf6DduPOCc9-IGJjdVghlvo_
@morozkoshow1840
@morozkoshow1840 4 года назад
Всем привет подскажите пожалуйста как реализовать следующие В видео показанно как скачивает виртуал бок и выводят в лейбл и прогресс бар . Но у меня возник вопрос. К примеру я создал класс update в него заехал код скачивания. Но прогресс бар и лэйбал находятся на форуме к примеру FormUpdate как мне передать данные скачки из класса на форму.
@XpucT
@XpucT 4 года назад
Привет 🖐 Написал две программы для Тебя. Наглядные примеры с делегатом и с полем. www.upload.ee/files/12007401/Class_to_Form.rar.html Также стоит ознакомиться с этой страницей для общего ознакомления: www.cyberforum.ru/windows-forms/thread110436.html
@morozkoshow1840
@morozkoshow1840 4 года назад
@@XpucT спасибо огромное. Буду скоро дома гляну. А еще вопрос. Как определить что поток закончил работу и оповестить что программа закончила скачивание. И как можно реализовать установку аватара. То есть пользователь установил фото и оно сохранилось в программе. Я знаю можно картинку переводить в байты и назад. Но чет второй день не могу реализовать это
@morozkoshow1840
@morozkoshow1840 4 года назад
@@XpucT лучший учитель по с# Подписка лайк 100%
@XpucT
@XpucT 4 года назад
// Как оповестить, что программа закончила скачивание: 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);
@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 показывай код.
@Атчачат
@Атчачат 5 лет назад
Здраствуйте, у меня тут проблема. У меня типа Iso Downloader, а это значит что файлы большие будут качаться, и как бы я код написал, нету ошибок и даже предупреждений. И когда образ качаеться, то когда доходит до 19 кб, всё, перестаёт качаться. Буду рад любой помощи.
@XpucT
@XpucT 5 лет назад
Добрый день. А что собственно не так, если придерживаться того, что в видео? Может на сервере стоит Firewall? Пробовали что-то другое скачать?
@Атчачат
@Атчачат 5 лет назад
@@XpucT Образы залиты на Яндекс Диск. Если просто Web Client, без всяких прогресс баров, скоростей загрузки и размера, то качаеться нормально. Чуствую придёться пересмотреть видео) Спасибо за помощь.
@Атчачат
@Атчачат 5 лет назад
Я уже кажеться разобрался в чём проблема) Спасибо ещё раз
@antonolesov144
@antonolesov144 4 года назад
Привет. А как также, только при копировании файлов?
@XpucT
@XpucT 4 года назад
Привет 🖐 stackoverflow.com/questions/6044629/file-copy-with-progress-bar
@antonolesov144
@antonolesov144 4 года назад
@@XpucT спасибо!
@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. Всё просто.
@Камрад-с1и
@Камрад-с1и 5 лет назад
как ты поменял цвет процес бара?
@XpucT
@XpucT 5 лет назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-gb3DMe5OJBg.html
@Камрад-с1и
@Камрад-с1и 5 лет назад
@@XpucTспасибо)
@ЖекаСимаков-у5х
@ЖекаСимаков-у5х 5 лет назад
и домашнего задания нет :(
@XpucT
@XpucT 5 лет назад
Визуально мы тут почти ничего хитрого не делаем, поэтому в качестве домашнего задания можно просто потренировать навыки написания событий и обработчиков для загрузки. В следующем видео, как раз упоминается домашка по этой теме 👍
@ЖекаСимаков-у5х
@ЖекаСимаков-у5х 5 лет назад
@@XpucT да я видел там парень написал loader, я уже до LINQа дошёл, но смотреть и вникать буду завтра
@K14M
@K14M Год назад
А как через переменные среды найти папк "Загрузки"? Сейчас я через реестр ее нахожу, где бы она ни была, а иначе можно? downloadFolder = Registry.GetValue(@"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", "{374DE290-123F-4565-9164-39C4925E467B}", @"D:\Downloads").ToString();
@joelgomescoutinho6432
@joelgomescoutinho6432 Год назад
Добрый вечер! В видео Уроки C# - ProgressBar + WebClient, HttpWebRequest, WebResponse - C# - в видео время 18:19 вы использовали сочетание клавиш для перехода вверх по строке, вы не вырезали и не вставляли, не могли бы вы сказать мне, какие сочетания клавиш вы использовали. Если что-то пропустили или не поняли, пишу на английском, пользуюсь переводчиком с португальского на русский.
@XpucT
@XpucT Год назад
Добрый 🖐 Alt + стрелка на клавиатуре 👍
@matosamp2044
@matosamp2044 3 года назад
В Directory ошибка
@animationfantasymystic7311
@animationfantasymystic7311 4 года назад
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; } }
@alexeygudan
@alexeygudan 5 лет назад
Возможно ли сделал этот прогресбар круглым? Или это только через другие варианты?
Далее
Flexy
31:58
Просмотров 35 тыс.
Beatrise (пародия) Stromae - Alors on danse
00:44
КАК СКАЧАТЬ STABLE DIFFUSION
3:13