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

  Рет қаралды 40,637

XpucT

XpucT

Күн бұрын

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

Пікірлер: 210
@redtayron6390
@redtayron6390 5 жыл бұрын
Спасибо за уроки Хачатур, глаза разбегаются с чего бы начать)
@user-zu8pj1is1t
@user-zu8pj1is1t 5 жыл бұрын
Это тот ролик который я ждал! Спасибо тебе за старания)
@oilondabeats9011
@oilondabeats9011 2 жыл бұрын
буквально месяца 4 назад я ненавидил твои видосы ибо нех непонятно было .... сегодня, прям мило посмотреть все доходчиво ,все ясно :)
@nikomag9785
@nikomag9785 5 жыл бұрын
Спасибо Вам большое! Три дня забивал голову многопоточностью чтобы Progressbar не зависал - посмотрел видео - сделал за 20 минут!
@user-tl6gq2tj7c
@user-tl6gq2tj7c 5 күн бұрын
Лучший) Твои уроки всегда будут актуальны, спасибо
@user-no3rr2wk2g
@user-no3rr2wk2g 5 жыл бұрын
Сперва думал, каким лешим ProgressBar с HTTP в одном ролике, а вот оно что оказывается. Прикольно. Надо тоже похожую штуку сделать будет
@lamax847
@lamax847 5 жыл бұрын
Отличные уроки, лайк!
@VitaliyZlobin
@VitaliyZlobin 4 жыл бұрын
Привет!) Благодарю за уроки - доступные, живые) Было бы не плохо узнать подробней про работу с API. Авторизация, запросы, ответы, подводные камни...
@user-ej6wc1hy7z
@user-ej6wc1hy7z 4 жыл бұрын
Минимум воды - максимум пользы, Спасибо!
@user-oo7sz8vn2g
@user-oo7sz8vn2g Жыл бұрын
Огонь, спасибо за контент ! Подписка, лайк)
@Vchaosu
@Vchaosu Жыл бұрын
Урок просто огонь, побольше бы таких
@RISE26127
@RISE26127 Жыл бұрын
Необязательно ставить запятую что бы посмотреть что необходимо для той или иной функции итд, достаточно нажать crtl+shift+пробел
@Gelenbagen
@Gelenbagen 5 жыл бұрын
Спасибо) Понятно и коротко)
@g①ldman
@g①ldman Жыл бұрын
вы просто красавчик !!!
@the_rise2324
@the_rise2324 4 жыл бұрын
Хороший урок, очень понятно
@archdeucetux5757
@archdeucetux5757 4 жыл бұрын
хорошие видосики, спасибо
@glebkrel5526
@glebkrel5526 3 жыл бұрын
Хорошие уроки !!! Спс. Запрашивать размер данных через Header не всегда хорошо. В данном случае хедер генерируется сервером хостинга от куда качаются данные, но если у вас будет серверная программа, которая бы принимала данные от другой программы, тогда значение Content-Length будет таким, каким его сделает программист в программе-клиенте. И при его ошибке может получиться несоответствие, так как может прийти данных условно на 2Гб а в контент ленгс будет просто левое значение, например 100)))
@kashiroko6632
@kashiroko6632 4 жыл бұрын
великолепно!
@-vip-6387
@-vip-6387 3 ай бұрын
Супер круто!!! Спасибо Тут мысль о подключении TCP Udp когда используешь Uri, я имею ввиду пример приложения Wirewall
@user-tf6nn7mj9d
@user-tf6nn7mj9d Жыл бұрын
Суперр!
@nikitanikitenko5338
@nikitanikitenko5338 5 жыл бұрын
Лучший учитель
@setfps
@setfps 4 жыл бұрын
Годно.
@Sergioshe
@Sergioshe 4 жыл бұрын
Спасибо.
@mr.alexhackchannel7368
@mr.alexhackchannel7368 Жыл бұрын
А чтобы progressbar плавнее работал, можно было установить его максимум на Content-Length, а в DownloadProgressChanged устанавливать его value на BytesReceived и он будет максимально плавно и красиво работать.
@RosemiNext
@RosemiNext Жыл бұрын
WebClient нельзя поставить на паузу... Единственное, что огорчает. Спасибо. Я знаю, что видео два года!)
@kotbaziliokotbazilio9818
@kotbaziliokotbazilio9818 4 жыл бұрын
думаю было бы интересно, если бы Вы показали пару примеров по переопределению визуальных компонентов
@Iamnotagenius
@Iamnotagenius 4 жыл бұрын
Когда хочешь передать в ToString параметр, его можно передать с помощью интерполяции через двоеточие, возьму твой пример: $"Загружено: {e.ProgressPercentage}% ({e.BytesReceived / 1048576:#.#} МБ)"
@zapiton
@zapiton 5 жыл бұрын
Привет Хачатур, как насчет того чтобы ты сделал видос, где ты от а до я создаешь какую то программу(от дизайна формы до публикации) это было бы интересно)
@zapiton
@zapiton 5 жыл бұрын
На пример что-то типа punto switcher'а
@tkaisert9745
@tkaisert9745 5 жыл бұрын
интересно
@LineAngel
@LineAngel 4 жыл бұрын
Здравствуйте, подскажите пожалуйста как привязать прогрессбар к запуску программы через сетевой ресурс (локальная сеть) или программы находящейся на пк с отображением загрузки в прогрессбар. Заранее спасибо.
@Roman-tt2rg
@Roman-tt2rg 5 жыл бұрын
Сделай, пожалуйста, ролик про передачу файлов по tcp. Достаточно болезненная тема( Лучше тебя все равно никто не объяснит
@UFO26
@UFO26 Жыл бұрын
11:25 или правой кнопкой мыши по переменной/методу, во всплывающем меню строка: "переименовать"
@tyuop
@tyuop 5 жыл бұрын
Как выставить timeout на определенное значение? Например, при LongPool сервере отправляя запрос, я получу ответ при новом действии. И действие при событии error; заданный timeout превышен.
@XpucT
@XpucT 5 жыл бұрын
ru.stackoverflow.com/questions/610009/long-polling-c
@taifunov
@taifunov 5 жыл бұрын
Можешь сделать видео урок как например парсить какую-то инфу с интернета? Пример: вставляешь ссылку на какой-то сайт, нажимаешь парсить и получаешь ту инфу, которая тебе нужна, но на примере c#
@XpucT
@XpucT 5 жыл бұрын
Мы проходили это в этом видео: kzbin.info/www/bejne/fn2lhIerfLKcp6s Главное - не пропускать материал и не перематывать =)
@Ivan_sev
@Ivan_sev 4 жыл бұрын
1) какую ты библиотеку подключил 2) я что не могу найти видео на основном канале как ты меняешь цвет. 3) продолжай выкладывать виде. Видео класс.
@XpucT
@XpucT 4 жыл бұрын
Не понял вопрос. Таймкод, пожалуйста.
@Ivan_sev
@Ivan_sev 4 жыл бұрын
@@XpucT я про 0:48
@XpucT
@XpucT 4 жыл бұрын
​@@Ivan_sev «потому что смотрите на основном канале, вот почему» kzbin.info/www/bejne/nZOWdYCbarR9eMk
@Ivan_sev
@Ivan_sev 4 жыл бұрын
@@XpucT спасибо.
@Ivan_sev
@Ivan_sev 4 жыл бұрын
@@XpucT забыл спросить. Так какую библиотеку ты подключил
@joelgomescoutinho6432
@joelgomescoutinho6432 Жыл бұрын
Добрый вечер! В видео Уроки C# - ProgressBar + WebClient, HttpWebRequest, WebResponse - C# - в видео время 18:19 вы использовали сочетание клавиш для перехода вверх по строке, вы не вырезали и не вставляли, не могли бы вы сказать мне, какие сочетания клавиш вы использовали. Если что-то пропустили или не поняли, пишу на английском, пользуюсь переводчиком с португальского на русский.
@XpucT
@XpucT Жыл бұрын
Добрый 🖐 Alt + стрелка на клавиатуре 👍
@mikepytchak8883
@mikepytchak8883 5 жыл бұрын
Привет ты лучший. Спасибо тебе) Почему не используешь ReSharper ?
@XpucT
@XpucT 5 жыл бұрын
Привет 🖐 Думал сделать отдельно даже Portable. Думаю доберёмся.
@mikepytchak8883
@mikepytchak8883 5 жыл бұрын
​@@XpucT C ReSharper надо разобраться в настройках чтобы получить перфоманс потому что он работает в процессе самой VS и для него там почти нет места. И даже на i5-том с 16 RAM лагает дико(((
@adamiyy
@adamiyy 5 жыл бұрын
@@mikepytchak8883 Согласен, очень уж удобная штука, но и ждать каждый раз по 40 секунд пока грузится ReSharper как-то не очень.
@akasteroid2625
@akasteroid2625 2 жыл бұрын
есть пара вопросов не по теме 1 - есть разные числа double которые показываю в текстБоксе когда число 1.0386 (не с запятой а с точкой) то конвертирует в стринг и выдает в текстбоксе как 10386 (тоесть убирает точку) как мне правильно конвертировать в стринг? 2 - также у некоторых чисел после запятой могут быть 3 знака и может 8 тоесть 1.003 или 0.00030049 если при конвертации в стринг пишу аргумент число.ToString("F3 или F8") это не по феншую как определять сколько знаков после запятой (в принципе просто посчитать количестко символов) но как это записать в число.ToString(сюда) чтобы выдавало правильное количество знаков после запятой ? а ну и вместо запятой должна быть точка ссори за стресс ;)
@smart_electronics_il
@smart_electronics_il Жыл бұрын
Добрый день) Зашел на основной канал, так и не нашел видео, как можно сменить цвет прогресс бара... А реально ещё сменить задний фон ?
@Chrescoe1
@Chrescoe1 5 жыл бұрын
Привет, очень хочу узнать можно ли красиво менять версию запускаемого браузера WebBrowser? И можно ли в одном приложении запускать разные версии webBrowser В интернетах нашел только способ через ключ реестра FEATURE_BROWSER_EMULATION, но то не позволит мне запустить 2 браузера разных версий(ie7, ie11) в одном приложении
@XpucT
@XpucT 5 жыл бұрын
Привет 🖐 Любопытный вопрос. Отмечу себе и попробую посмотреть, какие там проблемы.
@adamiyy
@adamiyy 5 жыл бұрын
Я как то пытался встроить chromium в программу чтобы гугл карты нормально высвечивались, скачал библиотеку в итоге программа превратилась в кашу весом 300мб. Так что тоже интересно)
@NIKITA-jy5pv
@NIKITA-jy5pv 2 жыл бұрын
Привет! Какую музыку используешь?
@alexeygudan
@alexeygudan 4 жыл бұрын
Возможно ли сделал этот прогресбар круглым? Или это только через другие варианты?
@Alexander-mt4cl
@Alexander-mt4cl 5 жыл бұрын
Возможно ли поставить загрузку файла через DownloadFileAsync на паузу?
@XpucT
@XpucT 5 жыл бұрын
stackoverflow.com/questions/15995705/adding-pause-and-continue-ability-in-my-downloader
@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 { }
@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 вижу ответ из одного слова "Шкот", значение которого не понимаю
@user-xj5yr6dx8r
@user-xj5yr6dx8r 4 жыл бұрын
Подскажите, а можно ли при помощи WebClient докачивать файлы? Допустим начал скачивание файла, а потом завершил программу и при новом запуске программы заставить докачать файл с той точки где он остановил скачивание
@XpucT
@XpucT 4 жыл бұрын
stackoverflow.com/a/16004845
@sheriff478
@sheriff478 3 жыл бұрын
Привет, спасибо огромное за уроки. Пишу свою первую курсовую на C#(Построение фракталов). Без Ваших видео-роликов было бы всё очень долго и нудно :) У меня вопрос- как привязать прогрессбар например к методу отрисовки Фрактального Дерева на пикчербоксе, программа постоянно дропается на первом шаге. Может кто знает?)
@XpucT
@XpucT 3 жыл бұрын
Привет 🖐 Нужен код, чтобы понимать как организовано фрактальное дерево.
@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.
@Official_Kelvin
@Official_Kelvin 2 жыл бұрын
а как сделать две разных файлов скачек через разные Butoon в ProgressBar
@user-ix3bq9nc8s
@user-ix3bq9nc8s 5 жыл бұрын
А будут видео по БД MSSql Server? Интересно будет послушать как работать с хранимыми процедурами, добавление, удаления, редактирование. Как эту лубуду написать максимально коротко и понятно.
@XpucT
@XpucT 5 жыл бұрын
Как раз недавно отвечал. Прямая ссылка на коммент: kzbin.info/www/bejne/rH-tgWqGft1neq8&lc=UgxE9yR9OhLyODER5fN4AaABAg
@NoName-tk4ym
@NoName-tk4ym Жыл бұрын
Здорово! Интересно, а есть видео как делается export из MySQL в excel таблицу. Там количество строк меняется и интересно процент загрузки как делается :)
@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) + "%";
@luen6019
@luen6019 3 жыл бұрын
В .net 6 WebClient не рекомендуется использовать если что
@UFO26
@UFO26 Жыл бұрын
А потом админы сайта виртуальная коробка орг, ругались на ддос атаки)
@blueboxproduction2823
@blueboxproduction2823 5 жыл бұрын
ВСё ХрисТ жду wcf & unity
@user-jd8ny5sg8e
@user-jd8ny5sg8e 5 жыл бұрын
Добрую НОЧЬ). Вы не знаете как сделать типа аргументы запуска? Ну например - Когда наживаешь правой кнопкой мыши на ехе игры какой нибудь, выбираешь свойства, то там можно ввести аргумент например "-Level (Уровень, который будет загружаться при запуске))". Вот я тоже самое хочу сделать со своей программой. Не подскажите как? Хочу сделать аргумент developermode. Буду рад любой помощи)
@XpucT
@XpucT 5 жыл бұрын
Обязательно про это будет видео, но если коротко, то: string[] keys = Environment.GetCommandLineArgs(); foreach (string key in keys) if (key.Contains("аргумиент")) ...
@user-jd8ny5sg8e
@user-jd8ny5sg8e 5 жыл бұрын
@@XpucT Огромное спасибо. Очень жду видео!)
@user-jd8ny5sg8e
@user-jd8ny5sg8e 5 жыл бұрын
@@XpucT Я бы ещё рекомендовал бы уже начать делать уроки по WPF. WinForms устарел уже, WPF технологичней и мощней +Можно легко, быстро и красиво сделать дизайн. Многие уже перестали писать фрейморки, библиотеки под WinForms, перешли на WPF. По UWP, он ещё сырой, но это почти тот же WPF. Не заставляю, но хотелось бы в будущем) Об достоинствах WPF над WinForms можно почитать в Вики например.
@XpucT
@XpucT 5 жыл бұрын
@@user-jd8ny5sg8e О, про WPF не просто знаю, но и пишу. Но когда пришёл к MVVM понял, что перед тем, как делать туториалы на эту тему, нужно очень хорошо подумать, как эту паутину объяснить. Всё то, что сейчас объясняется в сети - говно полное. Поэтому пока не делаю. Нужно составить снова свою последовательность.
@artkar4866
@artkar4866 4 жыл бұрын
Вопрос такой: ты говорил что непрямые ссылки по-другому работают. Я нашёл ссылку на видео в коде страницы, webclient её видит, ошибки нет, но загрузка не идёт. В чём может быть проблема?
@XpucT
@XpucT 4 жыл бұрын
Причин может быть масса: например, в том, что сервер, с которого Ты собираешься скачать, проверяет user-agent клиента. И если видит, что это не браузер, не даёт загрузить. Первое, что делаю лично Я в таких случаях ставлю ему user-agent Mozilla: stackoverflow.com/a/11841680
@artkar4866
@artkar4866 4 жыл бұрын
@@XpucT Увы, это не сработало. Можешь назвать ещё какие-нибудь причины
@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. Там намного легче реализовать поиск и лучше отображает принятые с базы значения.
@kodersurocecode267
@kodersurocecode267 5 жыл бұрын
Как можно достать имя и расширение файла, во время загрузки через WebClient?, в интернете инструкцию не нашёл.
@XpucT
@XpucT 5 жыл бұрын
1. От загружаемого файла просто берём имя без пути. То есть убираем / в адресе. 2. Потом из имени берём всё то, что идёт после последней точки - это будет расширением.
@adamiyy
@adamiyy 5 жыл бұрын
Я сделал так: string name = Path.GetFileName(URL);
@kodersurocecode267
@kodersurocecode267 5 жыл бұрын
@@adamiyy tnx
@matosamp2044
@matosamp2044 3 жыл бұрын
В Directory ошибка
@user-ki4mi6tc8v
@user-ki4mi6tc8v 2 жыл бұрын
у тебя есть уроки по ассихронности?
@XpucT
@XpucT 2 жыл бұрын
Как насчёт нажать на ссылочку плейлиста по урокам? kzbin.info/aero/PL05SB3rBbUsraqiEUeS70RKhVAu97nGeb
@Ivan_sev
@Ivan_sev 4 жыл бұрын
ты снял видео как скачать по ссылке файл, а можешь снять видео как наоборот отправить файл по ссылке или в Яндекс диск. " мне просто надо сделать так чтобы папка с работами на Яндекс диск отправлялись".
@XpucT
@XpucT 4 жыл бұрын
У Яндекса свои инструменты для этого. Яндекс.Диск.
@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; }
@akasteroid2625
@akasteroid2625 2 жыл бұрын
нужно чтоб когда нажимаешь F1 перекидывало на видосы с канала
@XpucT
@XpucT 2 жыл бұрын
@UCrLTXQEiJDjsYNOiCyq
@UCrLTXQEiJDjsYNOiCyq Жыл бұрын
Паузы нет в WebClient
@UCrLTXQEiJDjsYNOiCyq
@UCrLTXQEiJDjsYNOiCyq Жыл бұрын
Не подскажите как сделать?) Или узнать где люди уже сделали)
@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);
@Vchaosu
@Vchaosu Жыл бұрын
Только в итоге exe он качает как надо, а вот остальные файлы с другими расширениями упирауются в 100 кбайт
@user-ww3ri5ug2w
@user-ww3ri5ug2w 3 жыл бұрын
Щас в моем лоадер читов будет автообновления 🖤
@eddypartey1075
@eddypartey1075 3 жыл бұрын
чит для какой игры?
@AndriySylyvonyuk
@AndriySylyvonyuk 2 жыл бұрын
Дай ссылку на основной канал. Спб
@XpucT
@XpucT 2 жыл бұрын
kzbin.info
@user-jd8ny5sg8e
@user-jd8ny5sg8e 5 жыл бұрын
Здраствуйте, у меня тут проблема. У меня типа Iso Downloader, а это значит что файлы большие будут качаться, и как бы я код написал, нету ошибок и даже предупреждений. И когда образ качаеться, то когда доходит до 19 кб, всё, перестаёт качаться. Буду рад любой помощи.
@XpucT
@XpucT 5 жыл бұрын
Добрый день. А что собственно не так, если придерживаться того, что в видео? Может на сервере стоит Firewall? Пробовали что-то другое скачать?
@user-jd8ny5sg8e
@user-jd8ny5sg8e 5 жыл бұрын
@@XpucT Образы залиты на Яндекс Диск. Если просто Web Client, без всяких прогресс баров, скоростей загрузки и размера, то качаеться нормально. Чуствую придёться пересмотреть видео) Спасибо за помощь.
@user-jd8ny5sg8e
@user-jd8ny5sg8e 5 жыл бұрын
Я уже кажеться разобрался в чём проблема) Спасибо ещё раз
@IOWN5EZ
@IOWN5EZ Жыл бұрын
Прогресс бар это хорошо но делать ему стиль сложно. Проще использовать PictureBox как прогресс бар.
@XpucT
@XpucT Жыл бұрын
Да, порой хитростью решать вопросы и красивее и меньше кода и проще.
@IOWN5EZ
@IOWN5EZ Жыл бұрын
@@XpucT Да как то выкручиваться приходится недавно начал изучать. Винформ устарел но впф вгоняет меня в ужас)
@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, это имя приложения
@antonolesov144
@antonolesov144 4 жыл бұрын
Привет. А как также, только при копировании файлов?
@XpucT
@XpucT 4 жыл бұрын
Привет 🖐 stackoverflow.com/questions/6044629/file-copy-with-progress-bar
@antonolesov144
@antonolesov144 4 жыл бұрын
@@XpucT спасибо!
@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; } }
@user-dy9lg9cn1s
@user-dy9lg9cn1s 5 жыл бұрын
как ты поменял цвет процес бара?
@XpucT
@XpucT 5 жыл бұрын
kzbin.info/www/bejne/nZOWdYCbarR9eMk
@user-dy9lg9cn1s
@user-dy9lg9cn1s 5 жыл бұрын
@@XpucTспасибо)
@artemklokov8182
@artemklokov8182 4 жыл бұрын
24:00 компилятор ругается на "e" в строке (по вашему) 33 (ошибка СS0136)
@XpucT
@XpucT 4 жыл бұрын
"e" уже есть? поэтому замените на "a" например.
@artemklokov8182
@artemklokov8182 4 жыл бұрын
@@XpucT это я сделал) просто по-моему у вас в коде "e" так же встречается 2 раза, и он работает
@XpucT
@XpucT 4 жыл бұрын
@@artemklokov8182 потому что в главном методе нет конфликта с этим самым 'e'
@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). Все работает на ура.
@awfsdgsgeefdgwef
@awfsdgsgeefdgwef 5 жыл бұрын
А где домашка?
@XpucT
@XpucT 5 жыл бұрын
В качестве домашки требуется сделать симпатичный доунлоадер 👍
@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-si6ww3gi2l
@user-si6ww3gi2l 2 жыл бұрын
а как быстро коментировать строки?
@XpucT
@XpucT 2 жыл бұрын
i.imgur.com/aND9hWf.png
@user-si6ww3gi2l
@user-si6ww3gi2l 2 жыл бұрын
@@XpucT спасибо, но я думал будет другой способ. На видосе ты это делал так быстро
@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_ 3 жыл бұрын
"Смотреть как поменять цвет ProgressBar(а) на основном канале", а ссылки на видео нет... Умно (нет).
@XpucT
@XpucT 3 жыл бұрын
kzbin.info/aero/PL0U1uvNv2tf6DduPOCc9-IGJjdVghlvo_
@user-nr4jf9rt4h
@user-nr4jf9rt4h 5 жыл бұрын
и домашнего задания нет :(
@XpucT
@XpucT 5 жыл бұрын
Визуально мы тут почти ничего хитрого не делаем, поэтому в качестве домашнего задания можно просто потренировать навыки написания событий и обработчиков для загрузки. В следующем видео, как раз упоминается домашка по этой теме 👍
@user-nr4jf9rt4h
@user-nr4jf9rt4h 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();
Они так быстро убрались!
01:00
Аришнев
Рет қаралды 2,4 МЛН
Alex hid in the closet #shorts
00:14
Mihdens
Рет қаралды 19 МЛН
Roblox Animated Conveyor Belt Tutorial | Roblox Studio
14:44
CyberCreator
Рет қаралды 23 М.
Уроки C# - склеиваем exe и dll
11:35
XpucT
Рет қаралды 23 М.
Мой новый мега монитор!🤯
1:00
Корнеич
Рет қаралды 4,2 МЛН
Ускоряем ваш TV🚀
0:44
ARTEM_CHIBA
Рет қаралды 539 М.
КРАХ WINDOWS 19 ИЮЛЯ 2024 | ОБЪЯСНЯЕМ
10:04
ноутбуки от 7.900 в тг laptopshoptop
0:14
Ноутбуковая лавка
Рет қаралды 3,6 МЛН
Как удвоить напряжение? #электроника #умножитель
1:00
Hi Dev! – Электроника
Рет қаралды 1,1 МЛН