Смотрю все видео на 1.5 или 1.25, ты единственный человек, которого комфортно слушать на обычной скорости)
@XpucT2 жыл бұрын
@geek__37435 жыл бұрын
Тернарный оператор: [первый оператор - условие] ? [второй оператор - if true] : [третий оператор - if false (ну или по другому else)] ! Всё просто огонь! ЛАЙК!
@arteria-circumflexa65275 жыл бұрын
Было бы классно посмотреть ваши видео на счёт реестра, где бы вы рассказали, что это такое и как его видеть изнутри, свои фишки, как познавали в общем и схожее. Можно всё это загуглить, конечно, но человеческий язык всё-таки ближе нам, начинающим. Спасибо за уроки!
@ВиллисКантор5 жыл бұрын
Здорово! Не лазил так подробно,благодарен. Пробовал,очень понравилось! Спасибо,Вам!
@_CryptoFunUA5 жыл бұрын
тот момент когда познал кайф от тернарной операции во второй раз... спасибо добрый человек... если я все таки осилю шарпу и напишу нужный мне проект, в долгу не останусь)
@skylerfranklin70893 жыл бұрын
i guess Im randomly asking but does anyone know of a method to get back into an instagram account?? I somehow forgot the account password. I would appreciate any tips you can give me
@ivanuchka007dunduk34 жыл бұрын
Посмотрел - не понял, посмотрел еще раз, всё понял. Спасибо! Удобная штука этот реестр
@monleres485mouse24 жыл бұрын
*_Кодер с питомцем - лайк сразу._*
@УсманГалеев11 ай бұрын
На некоторых стоп-кадрах из-за света на кресле кажется, будто у тебя зачёсанные длинные волосы)
@NKCMEH5 жыл бұрын
Загадка - *За что кот любит шкаф Хачатура?*
@theufgf86735 жыл бұрын
Логично, чтобы попасть в видео
@SatanicDeveloper66611 күн бұрын
У такой реализации есть один минус. Она не применима к кроссплатформенным решениям. Лучше использовать Microsoft.Extensions.Configuration
@drdrag18675 жыл бұрын
Все круто, решил вспомнить C# Теперь я точно знаю как программисты шваркают себе реестр, а с ним и систему. Привет из сервиса. ЗАПОМНИТЕ бекап реестра перед работай, как и точка отката системы - это миф для трусов. А ресстр всегда полностью весит в памяти из воздуха и пока ПК НЕ ВЫКЛ HDD не шоркает не как при чтение и записи... Куда сохранять, файл или реестр выбор каждого. (особенно мега базы наработок :))) ) Но че-то не при работе с файлами не при работе с реестром не кто не упомянул MSQL. Я для себя сделал вывод, мелкие настройки скрыто лучше в реестре. Если пользователю без доп знаний ПК к ним нужен спец допуск - то файл. Но из-за чего обычно стоит выбор куда сохранять особенно большие объемы данных (не было упомянуто) и быстро иметь к ним доступ как вреестре. ПРИВЕТ ИЗ СЕРВИСА еще раз, НАПОМИНАЮ Windows не относится к гарантийному случаю.
@adiamock3 жыл бұрын
Очень интересно! Со всем согласен (особенно в теоретической части). Особенно зашло работа с INI-файлами, но не для хранения настроек. В моём случае это создание проекта приложения и его компонентов (без API). Хотя в API, ничего плохого не вижу... Хочу увидеть чтение и создание в реестре значение мультистринг.
@АлександрГлазков-э7ь4 жыл бұрын
Большое спасибо за урок. Основы работы с реестром получил, а дальше методом научного тыка и гугления буду разбираться. Еще есть один вопрос: сейчас занимаюсь небольшим проектом, который будет парсить картинки с сайта и с определенным интервалом менять их на рабочем столе. Но при смене обоев, как и ожидалось, они просто быстро меняются. Буду благодарен, если подскажете, как реализовать плавную смену изображения. И еще хотелось бы получше разобраться с веткой Control Panel\Desktop. Буду благодарен за любую помощь))
@orakul_azovstal3 жыл бұрын
Добавить пункт в контекстном меню рабочего стола: Registry.ClassesRoot.CreateSubKey(@"Directory\Background\shell\ФОТОШЛЁП").SetValue("Icon", @"F:\путь\"); Registry.ClassesRoot.CreateSubKey(@"Directory\Background\shell\ФОТОШЛЁП\command").SetValue("", @"F:\путь\"); Удалить куст: Registry.ClassesRoot.DeleteSubKey(@"Directory\Background\shell\ФОТОШЛЁП\command"); Registry.ClassesRoot.DeleteSubKey(@"Directory\Background\shell\ФОТОШЛЁП");
@ZuraevD2 жыл бұрын
16:07, ахахах, фух, не ошибся 🥺
@sleepyNovember_project4 ай бұрын
Вот тут не совсем понял (26:27) Получается, если Ключа, либо Параметра не существует, то строка в label1 остаётся вообще не затронутой, а если ключ и параметр есть, то ТОЛЬКО ТОГДА записывается в строку что-то ("что-то" в этом случае - значение параметра)? А тут как раз то понял (36:27) Выходит, если все три условия в тернарном операторе выполняются, будет явно true, в любом другом случае явно false
@denkor.z3 жыл бұрын
36:28 зачем тернарник в 33 строчке в конце? Разве окончание строчки на == "Вкл"; не даст тот же результат?
@XpucT3 жыл бұрын
Всё верно. Но не забываем, что это курс, где мы идём по всему последовательно. Покруче и покороче будет далее =)
@denkor.z3 жыл бұрын
@@XpucT вот это скорость, тут без вариантов подписка)
@VitalyGorshkov2 ай бұрын
Спасибо за видео - то что искал !!! Можете еще подсказать , в каком видео рассказывается про using попробовал поиском в канале воспользоваться, то что нашел, там про using не упоминается. Спасибо !!!
@firstlast4934 жыл бұрын
Я написал программку, которая изменяет цвет текстового курсора, когда вы переключаете расскладку. Она просто меняет в реестре одно значение цвета на другое: github.com/Neogamezzz/CaretColorChanger
@XpucT4 жыл бұрын
Прикольно =))
@VitalyGorshkov2 ай бұрын
ссылка уже не рабочая
@bonickd90953 жыл бұрын
Хачатур подскажи есть ли способ через реестр узнать путь до exe все установленных программ?. Просто не у всех есть DisplayIcon в котором содержится путь до exe! Именно для запуска не uninstall
@zimavi2 жыл бұрын
Наконец то я понял как использовать ? :
@brainfood65803 жыл бұрын
Вот по поводу ситуации когда пользователь говорит что вы "тупой", были забавные ситуации. Я разработчик софта для игры и так как мой софт в стадии разработки, я сделал так что он сам не обновляется под игру(хотя я легко могу сделать это), тысячу раз говорил им что это нужно для того что бы они скачивали новые версии, ведь если софт будет обновляться сам, они забьют на более новые версии и потом всегда ноют что там баги, а там плохо работает и тд. Причём я это писал везде, дабы люди могли прочитать, но в 21 веке читать описание того что качаешь это видимо не модно. И на днях мне пишет человек, его сообщение выглядело вот так : "О боже, кодер такой тупой, не может сделать автообновление под игру". Это жутко взбесило, ведь это написано прям в описании. И ещё не менее смешная ситуация была , она больше подходит про твою позицию по поводу целостности файлов. Люди ноют что в софте якобы "вирусы", и им просто бесполезно говорить что эта программа читает переменные из игры, и вообще внедряется в работу процесса игры, что расценивается как вирус многими антивирусами, но они не особо хотят даже вникать в то что им пишешь. Но даже это я написал в описании, даже статью создал где всё рассказал, но опять же читать нынче не особо модно, а жаль.
@XpucT3 жыл бұрын
Рано или поздно соберётся альянс разрабов, которые будут требовать с антивирусов компенсацию за нанесённый вред имиджу. К сожалению, это не так просто, потому что антивирусы мгновенно будут переписывать свои стринги в таком духе: потенциально опасно... И всё. Сходится. Поэтому только через суд. И вот если будет такой альянс, профсоюз, как угодно можно интерпретировать, и прям сотней человек коллективный иск против лаборатории. Там уже не прикроешься словами: ну вот знаете, это же не вирус, прям так же не пишется. Ага-ага. Пруфы с комментов Я им ОЧЕНЬ быстро наберу, где народу это всё, как красная тряпка для быка. Вот чем хороши суды. Можно что угодно и как угодно интерпретировать, решает судья чисто по-человечески. К тому же мы знаем какой оправдательный % в России. Мне лично заниматься таким альянсом рано, но очень вероятно, что сделаю это после следующего очень крупного проекта. Иначе, как Ты правильно отметил, юзерам всё равно на то, что Ты там им доказываешь.
@sykablyads9 ай бұрын
как можно выпилить сам раздел USBSTOR на c#? день голову ломал, так и не получилось..
@NewbieTM_3 жыл бұрын
Добрый вечер. Видео интересное и информативное, но как новичок, идя по плейлисту, хотелось бы сначала узнать что такое реестр и с чем его едят. Если у вас нет таких видео, может подскажите где смогут обьяснить?
@XpucT3 жыл бұрын
Добрый вечер. Рекомендую начать просматривать весь этот плейлист ➜ kzbin.info/aero/PL0U1uvNv2tf6DduPOCc9-IGJjdVghlvo_ Но не спешите что-то повторять, потому что какая-то информация уже обновлена. Пока просто смотрите.
@naivrick97825 жыл бұрын
Хачатур, мог бы ты рассказать про работу с регулярными выражениями, к примеру вывести в отдельный текст какую то колонку из HTML таблицы (то есть исключить HTML теги ), в документации всё сложно сам понять не могу)
@XpucT5 жыл бұрын
Regex считается устарелым, но думаю всё же стоит об этом рассказать.
@ЕвгенияЕвгения-о6э5 жыл бұрын
Большое спасибо за видео! Ваши уроки, Хачатур, хорошо запоминаются, и смотреть их весело и интересно. У меня вопрос на засыпку) Почему нельзя сравнивать процессы по их типу (можно по ID и имени, но было бы быстрее прямое сравнение). Вот что я имею в виду: Process p = Process.Start("notepad"); Process[] array = Process.GetProcesses(); if (array.Contains(p)) MessageBox.Show("contains"); Почему при такой организации поиска сообщение не выводится (при поиске по id, разумеется, находит)?
@XpucT5 жыл бұрын
Потому что 'p' в данном случае - это команда на запуск процесса. Внимательнее ;)
@ЕвгенияЕвгения-о6э5 жыл бұрын
@@XpucT Оно-то так, но по идее переменная привязывается к процессу, к которому применяем метод запуска. Но Ок, я уже как только ни пробовала. Вот вариант привязки к текущему процессу: Process.Start("notepad"); Process p = Process.GetCurrentProcess(); Process[] array = Process.GetProcesses(); if (array.Contains(p)) MessageBox.Show("contains"); Разницы нет(
@XpucT5 жыл бұрын
@@ЕвгенияЕвгения-о6э до урока LINQ добралась?
@XpucT5 жыл бұрын
@@ЕвгенияЕвгения-о6э Пример, как Я завершаю список процессов: List procs = new List { "notepad", "cmd", "explorer", }; procs.ForEach(x => { Process.GetProcessesByName(x).AsParallel().ForAll(y => { y.Kill(); }); }); Но нужно добраться до урока LINQ ;)
@ЕвгенияЕвгения-о6э5 жыл бұрын
@@XpucT нет пока, спасибо, я посмотрю!
@wisherman8882 жыл бұрын
Доброго времени суток! Принялся изучать С# , придумывая себе различные задачки. Одной из задачек создать удобный фикс для исправления ошибки 10016. О чем она: ошибка прав или их отсутствие на запуск и активацию COM-объекта конкретным пользователем. Обычно речь идёт о пользователе винды СИСТЕМА или NT Service, но иногда речь и о прочих. С прочими надо очень осторожно, не суть. Решается как раз сбросом владельца на ветку реестра с Trusted Installer, на текущего Админа или просто на Все, добавлением нужного права через Диспетчер и восстановлением прав ветке до Trusted Installer. На одной машине сделать руками прикольно, а на десятке другом - бесит или лень. Вопрос: как правильно реализовать "общение" с CACL реестра и CACL COM-объектов?
@XpucT2 жыл бұрын
Добрый день. Вероятно, в будущем на эту тему сделаю видео, но вряд ли в скором времени, ибо это по сути эксплоит. А Мне как бы хватает репортов от завистников. Лишний раз повод давать не хочу. Могу лишь сказать, что это возможно. И да, на чистом C#. Я лично это сделал первым, если Мне не врёт Google и StackOverflow. Если долго будете думать и пробовать, то раскусите, как обойти TrustedInstaller или СИСТЕМА в реестре.
@wisherman8882 жыл бұрын
@@XpucT эм, я убежден был, что запрос повышения прав решает проблему "эксплоитизма" )) Т.е. типа легальная дорога. Становимся админами, легально правим CACL реестра и вертаем всё на место, "как и було". А теперь выясняется, что это бяка... Хм. Найдутся ссылки-наводки для изучения? Спасибо
@XpucT2 жыл бұрын
@@wisherman888 все ссылки и наводки, о чём дал понять выше, ведут в то, что сделать это невозможно средствами C#. Я Вам лично говорю, что возможно, ибо лично понял как это сделать. Если не описывать код, а процедуру, то выглядеть должно так: Создаём переменную, заглядывающую в ветку реестра, сразу обозначая, что мы не собираемся там ничего менять, то есть в OpenSubKey не пишем с true внутри, иначе поймаем System.UnauthorizedAccessException. Имея эту переменную используем её для того, чтобы добавить пользователя, как просто одного из списка пользователей для простого просмотра. И вот тут скрывается уязвимость. Добавляя через using можно сразу назначить его админом, и не закрывая метод скажем так входа в ветку реестра ставим его владельцем. Вот только нужно внимательно обдумать, как так изъебнуться (другого слова не подобрать), чтобы это сделать. У Меня это заняло 4 строки.
@wisherman8882 жыл бұрын
@@XpucT попробую извернуться... Спасибо большое!
@vadymkon Жыл бұрын
Офигеть, так оказывается реестр читается быстрее чем что-либо. А могу ли я тогда его использовать для огромной data(over 30mb)(которая у меня вообще в .txt лежит) для считывания невероятного количества параметров? И как это лучше сделать, просто запихнуть туда инфу? Типа в строчный параметр? Или лучше разбить на много подстрочных параметров? Очевидно придётся тему изучать в инете походу поглубже, но если кто может сразу ответить на что-то, буду благодарен.
@XpucT Жыл бұрын
Можно, но лучше такими данными не забивать чужие компы. Грузится же будет дольше немного.
@vadymkon Жыл бұрын
@@XpucT спасибо
@Павел-щ5р8ы2 жыл бұрын
Видимо, что то изменилось, удалило спокойно=) рукурсия конечно да, забавная история=)
@TOTGAD4 жыл бұрын
Хачатур, подскажи пожалуйста что почитать по Реестру винды...
@XpucT4 жыл бұрын
Google. Нужно именно прямой вопрос. Нет специальной литературы, где рассказывалось бы о реестре в полной мере. Может и есть литература, в принципе, но точно не находил ни разу, когда задавался каким-то вопросом. Конкретным.
@kostya13062 жыл бұрын
А я правильно понял, что CurrentUser он для кажного пользователя свой. И если на компе несколько учеток, то содержимое CurrentUser у каждого будет свое?
@XpucT2 жыл бұрын
Всё верно. Current - это текущий в текущем сеансе. То есть можно даже не думать об этом. Программа сама знает, что нужно всё делать именно на текущем пользователе.
@ДмитрийКачусов-к5т5 жыл бұрын
Хороший видосик, всё по делу =) Вот только зря вы в пример привели именно ручную считку файла (Я имею ввиду без использования фреймворков), есть всякие XML, JSON, да те же фреймворки есть по считке .ini файлов, так что в 99% случаев свои велосипеды не надо писать и уж тем более на C# - где чистый код обязателен (По моему мнению).
@XpucT5 жыл бұрын
Главное научиться хоть что-то делать =)
@temurjumaniyazov32733 жыл бұрын
Спасибо! А что если очистка реестра удаляет эти ключи? Жду ответа от вас. Я новычёк в этом
@theufgf86735 жыл бұрын
Интересно всё-таки в реестре попался на глаза Red Gate.. к чему бы он там засветился? К Win 10 Tweaker'у.
@PravdaGe3 жыл бұрын
Доброго времени суток ! ХрисТ а как сделать Импорт и Экспорт Например key.reg вот код например string directory= @"C:\Program Files (x86)\key.reg"; Process regeditProcess = Process.Start("regedit.exe", "/s \"" + directory + "\""); regeditProcess.WaitForExit(); Вот к чему я это все... в ТВикинариум ты показываешь как реализовано то или иное , но решения либо CMD либо Registry Покажи пожалуйста например как было реализовано Изменение вида Командной строки в Win 10 Tweaker на PS: Тестируя дизайн CMD после твика обнаружил что если вы в поиск пишем CMD и запускаем твик есть если Командная строка то твика нет ! Чудеса Microsoft
@XpucT3 жыл бұрын
Приветствую 🖐 По работе с реестром есть видео ➜ kzbin.info/www/bejne/Z4imnpt-ppaUgLM А конкретно заковыристые значения в нашем случае ➜ i.imgur.com/nMuobeM.png
@stonks40304 жыл бұрын
спасибо
@maxchershe92225 жыл бұрын
А этот знак вопроса можно прямо во всех случаях использовать вместо проверки на null? Не помню такого в C++, круто. Т.е. это гиперсокращенный тернарный оператор получается?
@XpucT5 жыл бұрын
Так точно 👍 Ещё можно проверять вот так: ?? условие ?? условие ?? условие ?? условие ........
@dmitrypushnov81942 жыл бұрын
Здравствуйте ,хачатур.Такая проблема :пытаюсь проверить значение в реестре dword-а ,а он не видит значение ,когда оно есть,а когда нет.Параметр с автовыгрузкой dll из ОЗУ.Вот код: RegistryKey newkey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer"); if (newkey.GetValue("AlwaysUnloadDll", RegistryValueKind.DWord) != null) { checkBox1.BackColor = System.Drawing.Color.Green; } else { checkBox5.BackColor = System.Drawing.Color.Red; } Суть в том ,чтобы при загрузке формы чекбокс1 светился зелёным ,если параметр есть ,а если нет ,то светился красным.
@dmitrypushnov81942 жыл бұрын
Второй способ проверки наличия значения вообще не работает
@XpucT2 жыл бұрын
Добрый день 🖐 Например, на 36:44, если поставить на паузу, можно увидеть, что проверку на null самого раздела лучше делать знаком вопроса. Поэтому сначала давайте сделаем так: newkey?.GetValue Далее в скобках Вы указываете тип параметра, что делать совершенно не нужно, ибо условие у Вас проверяет в принципе наличие параметра. Его тип не важен. Если он важен, то нужно расширять условие.
@dmitrypushnov81942 жыл бұрын
@@XpucT Это всё-равно не работает.Я убрал значение с двордом и поставил знак вопроса.Это ничего не изменило.Он постоянно говорит ,что там этого параметра нет,хотя я удалял и добавлял значение. Новый код: RegistryKey newkey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer"); if (newkey?.GetValue("AlwaysUnloadDll") != null) { checkBox5.BackColor = System.Drawing.Color.Green; } else { checkBox5.BackColor = System.Drawing.Color.Red; }
@XpucT2 жыл бұрын
@@dmitrypushnov8194 код, который Вы только что дали 100% рабочий. Вероятно где-то тупите. Нужно только понять, где именно. То есть всё делаете правильно, но где-то что-то не так воспринимаете или меняете. Могу предположить, что Вы ожидаете какое-то конкретное значение, раз изначально писали Dword. У вас где-то тут заминка. Надеюсь, что Я понятно объясняю, что код рабочий и он делает ровно то, что делает. У новичков всегда так. Это нормально. К этому нужно просто привыкнуть. Пишешь одно, программа не выполняет этого. Но это всегда не так =) Программа всегда делает ровно то, что Вы ей говорите =) Идеальное условие должно выглядеть так: RegistryKey newkey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer"); if (newkey?.GetValue("AlwaysUnloadDll")?.ToString() == "1") { // Параметр AlwaysUnloadDll существует и он равен 1 // Программа не свалится в ошибку, если параметра нет, // т.к. проверяется и наличие ключа реестра и его параметр, // если он также есть } else { // Либо нет ветки реестра, либо параметра, либо параметр не равен 1 }
@dmitrypushnov81942 жыл бұрын
@@XpucT Я вписал всё это в код и это не работает.У меня есть предположение ,что из-за нахождения параметра в ветке HKLM ,которая вроде системная ,Windows защищает её от изменений и не даёт доступ.Поэтому программа и говорит ,что значения нет.Я только что проверил это на ветке HKCU с тем же параметром дворд и он всё понимал и говорил когда значение есть ,а когда оно или не равно 1,или его нет.Тут скорее стоит вопрос как обойти защиту системы
@fobien4 жыл бұрын
Стоп друг. Комменты лайкаешь, а новых видосов нет в чем дело? И да вопрос где лучше хранить настройки приложения В "Параметры" в конструкторе проектов или в ini файлах? После уроков по C# очень захотелось программировать (но только то в чем я нуждаюсь и кст пользуюсь до сих пор)
@fobien4 жыл бұрын
Блин с ума схожу проверяю где-то раз 2 недели появился ли новый ролик(просто часто пользуюсь старыми)
@fobien4 жыл бұрын
позор мне на 4 минутах видео все сказано, но просто интересто, а если у меня 100 разных параметров, то будет ли худо реестру и нужно уже бд подключать если их будет еще больше
@blackdream93725 жыл бұрын
Привет, не подскажешь какой параметр в реестре отвечает за смену обоев рабочего стола на каждом мониторе, то-есть на одном мониторе одно изображение, а на другом другое.
@XpucT5 жыл бұрын
Привет 🖐 Хм... увы, не в курсе.
@guwancawediyew65655 жыл бұрын
Man you are Great
@docsp36604 жыл бұрын
Не могли бы вы растолковать или дать код, для добавления бинарного ключа в реестр. Импорт подобного ключа из реестра: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Test\6162] "Key2"=hex:86,4d,22,ba,90,f0,79,07,1b,1d,23,81,51,6f,4c,fd,d8,78,5f,ca,92,eb,\ 71,06,0c,01,3f,c2,53,55,55,fd,db,1c,21,b6,f4,b4,45,6f,42,31,27,b7,42,6e,76,\ d7,85,43,05,bc,e5,93,62,04,3c,67,27,b4,1f,6d,45,d7,c6,7b,03,aa,ee,99,73,0b,\ 3b,2e,18,ca,41,68,54,ef,d5,04,5b,bf,de,98,4d,0a,5f,0c,04,d8,76,50,67,ca,99,\ 4a,5e,8b,e7,b4,43,1b,44,37,0d,c7,40,46,48,f6,99,65,44,bf,ed,90,44,6b,3f,05,\ 02,ba,61,6f,67,d4,f8,43,09,d3,d2,b8,4f,04,06,02,29,a6,42,51,43,db,ec,75,26,\ ab,c2,95,4f,08,25,22,5d,bb,47,72,66,c9,ee,44,1c,cd,cc,b0,47,37,22,65,59,84,\ 09,a9,2f,d3,4e,89,ab,d8,f8,b4,74,35,87,60,74,f3,8c
@@XpucT Большое спасибо, а то мучился с этим RegistryValueKind.Binar
@infinitynoir54415 жыл бұрын
Хачатур, привет! Подскажи пожалуйста по поводу using(), раз тут в видео речь была. Допустим условно код таков (я с телефона, поэтому пишу приблизительно): using(StreamReader...) { usung(AnyObject..) { //Код юзинга внутри юзинга } } Т.е получается, что внутри юзинга идёт ещё один или несколько юзингов. Так вот, корневой(самый первый) юзинг чистит все, что внутри его скобок (т.е все остальные юзинги тоже чистятся и они получается вообще не обязательны), или он отвечает только за свой объект и так и надо вкладывать юзинги в юзинги? (Осталось только картинку с мемом добавить). Надеюсь описал более менее понятно..) Спасибо!
@XpucT5 жыл бұрын
Очень понятный вопрос =) Каждый using работает (try, finally, dispose) только с тем, что идёт внутри скобок и в блоке. using верхнего уровня не будет заниматься хлопотами (try, finally, dispose) того using который внутри верхнего. Тут на самом деле можно догадаться даже по следующему примеру: using (WebClient wc = new WebClient()) { using (RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software")) // внутренний using по окончанию скрыто сделает key.Close(); // верхний using закроет поток wc.Dispose(); }
@infinitynoir54415 жыл бұрын
@@XpucT спасибо большое, Хачатур. Буду вкладывать юзинги в юзинги :) Уже использую многие фишки подчёрпнутые из твоих видео. И очень жду следующих :)
@blackdream93725 жыл бұрын
Здравствуйте, подскажите пожалуйста, как можно получить все файлы из папки где есть под папки в которых тоже могут быть под папки, и как можно получить все пути к папкам и файлам в виде массивов путей?
@XpucT5 жыл бұрын
Добрый день. Не пропускайте уроки: string[] array = Directory.GetFiles(@"D:\Разное", "*.*", SearchOption.AllDirectories);
@blackdream93725 жыл бұрын
@@XpucT Спасибо, за помощь, я хотел спросить если программа выдает ошибку что отказано в доступе как можно решить данную проблему? Я искал в инете то там говорят что нужно запускать от имени администратора, но все равно не помогает
@XpucT5 жыл бұрын
@@blackdream9372 если есть админские права, то больше и не надо. А если этого мало, значит пытаешься что-то нарушить. Если не нарушить, то что? Я не услышал, к чему именно доступ нужен. Если к ядру системы, то само собой не санкционированный доступ.
@blackdream93725 жыл бұрын
@@XpucT Я хотел прочить все файлы с дисков, то есть консоль выводит все файлы к примеру на диску C, D. Но при попытке чтения файлов из диска С выдается такая ошибка(System.UnauthorizedAccessException: "Отказано в доступе по пути "C:\Documents and Settings"."),(System.UnauthorizedAccessException: "Отказано в доступе по пути "D:\System Volume Information"."), Спасибо за помощь
Добрый день, я хочу написать свою новелу на C# и WPF. Я не знаю как сделать так, чтоб например персонаж сказал что-то, юзер нажал на кнопку [Далее], и персонаж сказал ещё что-то и так далее. При этом, кнопки текст боксы и т.д. Добавляются через обычный XAML. И функционирует, и запускается, но вот конструктор форм WPF не грузится у него.
@XpucT5 жыл бұрын
Добрый день. Во всей это абстракции Я услышал и навскидку посчитал сценариев 20. Не говоря уже о реализации. Я бы помог с решение проблемы. А вот с решением вопросов помогает Google, о чём говорилось в Уроке 0. Вы спросите, что именно не получается, когда Вы делает вот то и вот это. А абстрактно - это всё равно, что написать за Вас всю составляющую =)
@Атчачат5 жыл бұрын
@@XpucT Я гуглил уже, ответов на вопрос нету, создал тему на КиберФоруме, нету ответа
@vinylmusic32995 жыл бұрын
пробую написать простенькую прогу, как можно в этом примере выводить каждый раз выделенный фрагмент в новой строке ??? + " " - ничего не дало... textBox1.Focus(); textBox1.Text = webBrowser1.DocumentText; { textBox1.SelectionStart = 4302; textBox1.SelectionLength = 34; } textBox2.Text = textBox1.SelectedText;
@XpucT5 жыл бұрын
Три раза прочёл Ваш вопрос и не понял. Вы не поленитесь описать максимально подробно, что и где расположено, какое действие Вы делаете или хотите сделать и что должно из этого получиться.
@vinylmusic32995 жыл бұрын
@@XpucT ок. При нажатии на кнопку появляется некий текст в textBox1, я по Вашему уроку выделяю нужный мне текст и вставляю его в textBox2 и тут планируется цикл, но при следующем нажатии на кнопку нужный текст замещает предыдущий, а нужно чтобы дописывался ниже. Возможно таким методом это не делается, но я только начал смотреть Ваши уроки и у меня не так много вариантов для реализации ))
Но как я понимаю, реестр нужен только при создании Windows программ?
@XpucT5 жыл бұрын
Да.
@denya_cheka2 жыл бұрын
Добрейший вечер, Хруст, ваши уроки что-то с чем-то, лайки стоят и даже друзья смотрят. Но пишу вам с таким вопросом: на старом, но ещё живом ноуте с 7 виндой хотел поработать, скачиваю вижуал студио и вначале выдаёт ошибку: приложение требует установки Net Framework 4,6 и выше. Далее при установке фреймворка происходит запуск инсталлятора вижуал студио, но следует очень долгая загрузка: Подготовка; и в конце которой выдаёт ошибку: Произошла неизвестная ошибка. Просим свои извинения. Так вот, вы случайно за годы практики не сталкивались с таким? Перепробовал многое и более ранние версии пробовал установить и нетворки другие. Всё упирается в ошибку в инсталляторе.
@XpucT2 жыл бұрын
Приветствую 🖐 На самом деле в последнее время такое было 2 раза. И всё из-за того, что Microsoft убрала серверы из России и даже отключила резервные в Европе. Тут действительно ничего не сделаешь, только ждать и пробовать позже.
@denya_cheka2 жыл бұрын
@@XpucT вас понял, но беда в том, что в Украине нахожусь, это связано с серверами в Европе?
@XpucT2 жыл бұрын
@@denya_cheka в Украине также перебои сейчас. Возможно тоже связано. Если нужно срочно, то Я бы VPN подключил.
@redtayron63905 жыл бұрын
Здравствуй Хачатур ты рассказал как прочитать настройки из реестра а как их сохранить, или я чего то не понял )
@XpucT5 жыл бұрын
Привет 🖐 При запуске читаешь параметры из реестра. Вносишь, а при запуске читаешь. Может потом сниму отдельное видео, как делать настройки 👍
@ivanuchka007dunduk34 жыл бұрын
Бляяяяяяя, я про ctrl + d только узнал, всё время тыкал (ctrl + x) + (ctrl + z) + (ctrl + v), узнал и охерел. А че, так можно было что-ли? Так же, как и про alt и ctrl + alt. Спасибо! Как эта фигня мимо меня прошла..? Не знаю!
@wziel84724 жыл бұрын
Привет, Хачатур. Вы рассказывали в этом видео и следующем о реестре. Так вот - как импортировать именно .reg файлик. Который будет не находится в папке с программой, а в самой программе (исправил =)). Или же для контекстного меню в Win 10 Tweaker сами всё прописывали? + Подойдёт ли добавление .reg файла как ресурса?
@XpucT4 жыл бұрын
Привет 🖐 Вопрос противоречивый, перечитай, что написал. Как можно импортировать файлик, который не рядом с программой, а в реестре =)) Ты понимаешь, что написал? =))) Касаемо того, как делаю для контекстного меню в Win 10 Tweaker. Делаю именно так, как обучаю тут. RegistryKey. Но вопрос с импортом вообще не понял. Перефразируй. Только на этот раз прочти, потом отправляй =)
@wziel84724 жыл бұрын
@@XpucT А ещё, если я так написал, тогда хочу ещё спросить - как экспортировать что-то из реестра в файл
@XpucT4 жыл бұрын
@@wziel8472 stackoverflow.com/a/16317193
@wziel84724 жыл бұрын
@@XpucT Вот есть программа. Я добавляю в неё ресурс (вы показывали в одном из видео как это делать). И я хочу, чтобы программа могла его импортировать. Жаль что на ютуб нельзя прикреплять фото, мог бы сделать понятнее
@XpucT4 жыл бұрын
@@wziel8472 можно залить скриншот на imgur.com И ссылку сюда.
@АлексДронго-х3к5 жыл бұрын
Большое спасибо за качественную подачу материала Христ. Все предельно понятно. Повторяю за тобой и все получается. Столкнулся с проблемой, не могу удалить параметры из раздела Software\Microsoft\Windows\CurrentVersion\Run, пишет "Не удалось выполнить запись в раздел реестра". Подскажи пожалуйста в чем проблема. С меня лайк и подписка.. Шучу, я уже лайкнул и подписался)
@XpucT5 жыл бұрын
Системные ветки так просто не изменить. Нужны привилегии, про это было видео. Также рекомендовал делать всё в HKCU.
@АлексДронго-х3к5 жыл бұрын
@@XpucT Я делаю в HKCU, как ты и рекомендовал в этом видео, а про привилегии пробовал как в твоем видео про запуск от администратора, добавив в проект файл манифеста приложения и установив level="requireAdministrator". Программа запускается от имени администратора, но в результате - "не удалось выполнить запись в раздел реестра". Может ты имеешь ввиду другое видео? Наверное я тебя не правильно понял.
@XpucT5 жыл бұрын
@@АлексДронго-х3к нет, Ты всё верно понял. Тогда странно почему не удаётся. Ветка Мне очень даже знакомая. Похоже Ты просто забыл убрать галочку с предпочтения 32-битной ОС. Свойства проекта ☝
@АлексДронго-х3к5 жыл бұрын
@@XpucT Убрал галочку, как ты знал?), результат тот же. Пересобрал проект и все рано не помогло. Через ПКМ удаляю без проблем.
@XpucT5 жыл бұрын
@@АлексДронго-х3к пробовал создавать новый проект? Если да, то скинь сценарий, который должен отработать.
@kodersurocecode2675 жыл бұрын
Как сделать так, чтобы контролы автоматические Увеличивались По мере увеличение размера окна?
@XpucT5 жыл бұрын
В WPF это можно сделать автоматически, а в Windows Forms нужно писать свой алгоритм. Возможно, рассмотрим в будущем.
@TIMSYSTEM4 жыл бұрын
6: 28 что за звук издаёт кот?
@XpucT4 жыл бұрын
Это кресло.
@kabukijoe99 Жыл бұрын
добрый вечер. по sendKeys будут уроки?
@XpucT Жыл бұрын
Добрый 🖐 Уже есть: kzbin.info/aero/PL05SB3rBbUsraqiEUeS70RKhVAu97nGeb
@kabukijoe99 Жыл бұрын
@@XpucT да, спасибо, я многие из них просматривал, но по sendKeys не нашел.
@__Goodwin__3 жыл бұрын
Очень странно используя студию пытаться создавать файл настроек вручную, в свойствах проекта есть раздел который позволяет формировать файл настроек, и работать с ним проще чем с реестром, и создаётся он автоматом рядом с экзешником
@BobiBobObana5 жыл бұрын
А что программы аля Ccliner делают с реестром? Что похожие программы чистят в реестре? Что значит чистить реестр?
@XpucT5 жыл бұрын
Этот вопрос на самом деле крайне далёк от темы видео. Чтобы понимать, что чистить, нужно хорошо понимать, что это мусор. Чтобы назвать что-то мусором, нужно точно быть уверенным, что это данные, которые никому не полезны и точны являются помехой чему-то другому. К этому мусору можно отнести следы использования USB-накопителей, которые были подключены к компу, история посещений каталогов, путей сохранения файлов и прочие. Тут нужно думать индивидуально и быть уверенным, что это мусор для всех. Смотря для кого и кому Ты предлагаешь чистить. CCleaner показывает, что он собирается чистить и в google можно найти подробнее про эти ветки. Почему CCleaner считает их мусором.
@BobiBobObana5 жыл бұрын
@@XpucT спасибо
@BobiBobObana5 жыл бұрын
@@XpucT А как открыть реестр после его закрытия? RegistryKey key = Registry.CurrentUser.CreateSubKey("SOFTWARE\\Моя программа"); key.Close(); key.Open() не работает.
@XpucT5 жыл бұрын
@@BobiBobObana а не нужно закрывать раньше времени. Всё просто. Если поработал, закрыл.
@dmdexn4 жыл бұрын
Хачатур, привет! Есть такой код public partial class Form1 : Form { public Form1() { InitializeComponent(); label1.Text = "Нажми кнопку для настройки"; if (Registry.CurrentUser.CreateSubKey(@"Software\ServerConnect").GetValue("SettingsAre").ToString() == "1") { label1.Text = "Настройки уже сделаны!"; button1.Enabled = false; } ....... Программа не запускается (хотя мелькает в процессах). Если убираю проверку, то все нормально. Подскажи, пожалуйста,как тут лучше поступить?
@XpucT4 жыл бұрын
Привет, Дим 🖐 Записал Тебе небольшое видео: v004.radikal.ru/2004/fc/6226753378-5-ce0df7b2cac93ec74b02d59693c75490.mp4
@dmdexn4 жыл бұрын
@@XpucT Охренеть! Ответ в виде видео! Спасибо огромное! И да, теперь заработало как надо! Огонь!
@azitwo42685 жыл бұрын
Привет, по твоим уроком уже сам пишу программы) Вообще классные, но у меня возник вопрос: Я пытаюсь чтобы получалось рандомное число от 1 до 2 и если было число = 1,то писалось одно, а если 2, то другое, но у меня всегда пишет - 1 Random rnd = new Random(); int pov = rnd.Next(1, 2); if (pov >= 1) { pov = "3 - 4"; } else { pov = 5 - 6; } вот я пока тебе писал понял, почему -1 писал, только вот как сделать чтобы у меня было именно именно такие названия ( в else как я изначально тупил, а в if то, что я хочу получить, но не выходит никак)
@XpucT5 жыл бұрын
Привет 🖐 Судя по коду, ничего удивительного не вижу =) Давай ещё раз. Что требуется. Потому что вижу, что всего будет -1.
@azitwo42685 жыл бұрын
@@XpucT Да я решил уже) по говнокодил правда, но к нужному результату пришёл 😄
@ДмитрийВладимирович-у5и5 жыл бұрын
Доброго времени суток. А есть какие-нибудь плагины для полной визуализации дерева реестра? Чтобы можно было взаимодействовать с полученной визуализацией так же, как и с самим редактором реестра (кликать по разделам, раскрывать кусты и тд )?
@XpucT5 жыл бұрын
Добрый день, Дима 🖐 Плагины не нужны. У нас есть контрол TreeView 👍
@googleuser30092 жыл бұрын
Как удалить ключ(дерево) в разделе current user ? Пишу using (... .. registry.currentuser.opensubkey("мой раздел")) И т.д., с проверкой кода, но этот код работает только так в реестре, hkey_current_user/ "мой раздел"/ удаляет внутри этого раздела, а мне нужно что удалил раздел " мой раздел" из директории hkey_current_user , как быть?
@XpucT2 жыл бұрын
.. registry.currentuser.opensubkey("мой раздел", true)) ➜ это во-первых. Во-вторых: DeleteSubkeyTree()
@googleuser30092 жыл бұрын
@@XpucT using (RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Admin",true)) { if (key != null) { if (key.OpenSubKey("Admin") != null) { key.DeleteSubKeyTree("Admin"); } } } Как-то так, и при этом ничего не происходит, в реестре. А если создать раздел в разделе "Admin" точно с таким же именем, то его успешно удаляет...
@googleuser30092 жыл бұрын
Проблема решена:)
@XpucT2 жыл бұрын
@@googleuser3009 всё верно. Посмотри своё условие. key - это уже ветка, открывающая подраздел Admin Далее ты пишешь key.Открой(Admin) То есть ты пишешь Admin.Открой(Admin) Внимательнее нужно.
@googleuser30092 жыл бұрын
@@XpucT У вас нет видео по созданию пробной версии программы(ограниченное число запусков)?
@theufgf86735 жыл бұрын
Хачатур, ты сказал именно в этом видео «Пока» на конце, а не «Переходим к следующему видео», к чему этот намёк?
@XpucT5 жыл бұрын
Эм... не заметил =)) У Меня всё спонтанно. Само как-то так вышло. Но это далеко ещё не всё по C#.
@КОД-ш8у5 жыл бұрын
катэ +!!!
@Атчачат5 жыл бұрын
Добрый день, тут мой друг столкнулся с проблемой. Он пишет программу на WPF, и у него в последнее время вообще не грузится конструктор форм WPF.
@XpucT5 жыл бұрын
ReSharper не ставил? Средства ➜ Параметры ➜ Конструктор XAML ➜ Включить конструктор XAML.
@Атчачат5 жыл бұрын
@@XpucT Он был включён, но всё равно не грузится. Там написано, что конструктор якобы загружается, но такой экран так и остаётся
@XpucT5 жыл бұрын
@@Атчачат Тогда проще переустановить студию. Средства ➜ Средства и компоненты.
@Атчачат5 жыл бұрын
@@XpucT Не помогает ему. Всё так же - не грузит
@XpucT5 жыл бұрын
@@Атчачат тогда остаётся вынуть проекты все и сбросить виртуалку на предыдущий снимок.
@fobien4 жыл бұрын
Для просмотра реестра нужны права админа?
@XpucT4 жыл бұрын
Всё зависит от ветки, которую открываешь. Как правило права для просмотра не нужны.
@безбашенийпро4 жыл бұрын
лооол. у меня хдд и 2 гига оперативки ддр2.
@vikt.sam_2 жыл бұрын
Зачем нужен реестр?
@XpucT2 жыл бұрын
@Роман-й5ж7л5 жыл бұрын
🏆👍
@aquarium895 жыл бұрын
забавно... директива Win32 отказывается работать на Win7 ))) метод RegistryKey не найден говорит... :(
@XpucT5 жыл бұрын
SDK NET Framework установлен?
@aquarium895 жыл бұрын
@@XpucT Да. все, я разобрался) На винде стояла версия 4.7.1, но то ли она была кривая, то ли в самой библиотеке не было чего-то нужного (классов наверное), а проект я делал на 4.7.2. Но, даже после 4.72 не запустилось. Однако стоило мне обновиться до 4.8 сразу все заработало... Хотя, я переводил весь проект на версию 4 (чтобы на XP тоже можно было работать) и там все без проблем работает по-умолчанию... Наверное чудеса. а может я еще криворукий пока что)) Спасибо за отклик)
@Alex-nw5zu5 жыл бұрын
Христ, считаешь ли ты, что люди просмотревшие этот курс, могут называть себя .net-разработчиками ? Возможно ты уже где-то упомянал, но какая конечная цель этого курса ?
@XpucT5 жыл бұрын
Посмотри первое видео, которое Урок 0. И чем дальше будешь смотреть, тем лучше начнёшь понимать, что ответ найдёшь сам. Я лично, если спрашивать Меня, уже не думаю, а знаю. И знаю следующее: люди и в комментах и на почту скидывают свои первые программы. Я рад, что есть люди с фантазией и идеей, которые наконец-то смогли сделать то, что им давно нужно было. Курс ещё не окончен, но пинок им такой дал в первых 20 видео, что скоро будут Меня обучать. Это уже, что касается цели. Найти сообщников, которые будут друг друга развивать.
@victor_13373 жыл бұрын
@zaylen83895 жыл бұрын
Слишком много информации за раз. Мне, например, не известно Ничего о реестре. Я не знаю, что это такое, для чего это нужно, я слышал это слово часто, но для чего оно я не догоняю. Поэтому бОльшая часть информации мне как - то не прижилась, я тупо ничего не понял. Понял лишь то, что все действия в реестре происходят быстрее. Столько вопросов. Типо, как можно сравнивать какой - нибудь txt файл с гигантским текстом и строку "Значение" какого - то файла в реестре. Возможно я чего - то не знаю. Или в "Значение" можно также дохера текста вставлять...
@XpucT5 жыл бұрын
Задавайте вопросы. Очень вероятно, что Я обсужу их и раскрою полностью в одном из видео. Я уже собираю самые популярные вопросы.
@zaylen83895 жыл бұрын
Ещё непонятный момент с этим Current User, Local Machine, Users. Как я помню, ты сказал, что Current User - это текущая учётка, а Local Machine - это все. Типо, обращаться может ко всем учёткам, как public в c#?
@XpucT5 жыл бұрын
Примерно да. Но всё же точнее сказано в самом видео. То есть значения в ветке HKLM влияют на все учётные записи, а HKCU только на текущего пользователя.
@user_PsevdonimyEtoPolnyjOtstoj2 жыл бұрын
Зачем это нужно?
@XpucT2 жыл бұрын
Да вот придумали от нехуй делать.
@lzrdblzzrd27 күн бұрын
@@XpucT лучший ответ на вопрос такого характера!
@АбдулхакимМагомедов-ж6у5 жыл бұрын
Народ, может я тупой, хотя нет, скорее всего я тупой. Крч не суть. Вопрос: О чем вы тут базарите? Я один да тут с нуля пришел учить си шарп, или я такой отсталый, что даже просмотрев базовые 20 уроков не врубаюсь в эту тему?
@XpucT5 жыл бұрын
Со звуком смотрел?
@Pereezd1235 жыл бұрын
Кто смотрит и ждет кота kzbin.info/www/bejne/Z4imnpt-ppaUgLM
@НиколайЛукоянов-ч9ж5 жыл бұрын
LocalMachine отказывется работать на c#... Вот почему XрисT не рекомендует там работать!
@XpucT5 жыл бұрын
Нет, не по этой причине. По другой. Озвученной в видео. Почему отказывается работать LocalMachine - другой вопрос. Скорее всего Вы столкнулись с тем, что лезете в ветку реестра, защищённую правами системы или TrustedInstaller.