Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Демо софт / Менеджер паролей

  • На этом уроке мы будем работать с буфером обмена и открывать сайты в браузере по умолчанию.

    Задание:
    Создать программу для хранения паролей.
  • Дата отправки отчёта: 28 января 2023 г.
  • Задание выполнено: за 1 день 1 час. 42 мин.
  • Чему научился: Было весело. Повторять за всеми не буду. Напишу только какие проблемы могут быть у тех, кто начал этот курс на Net версии 6 и выше. У меня стоит Net7 ну и 11 окна. :)
    По видео уроку указал время  в первом вопросе...
    1. 19:58 переименование проекта на последней Visual22 ver. 17.14, приводит к краху проекта. После этого восстановить его не получилось...
    Три раза пробовал на разных этапах, начиная с самого начала и сразу после создания формы. В этом случае все переименовывается, но после компиляции происходит пустой старт формы
    с name Form1 и дальнейшие манипуляции с элементами формы и ей самой сохраняются, но не отображаются на откомпилированной форме. Не когда искать причину этого бага или того, что
    еще надо сделать в проекте, чтобы все работало нормально.
    2. Просто так, в версии NET6 и выше, как я понял Process.Start не запускает связанное с файлом приложение и код в ролике: Process.Start("www.google.ru";); приведет к ошибке:
    System.ComponentModel.Win32Exception: 'An error occurred trying to start process 'www.google.ru'; with working directory 'C:\Users\Debugger\Documents\PassWord\PassWord\bin\Debug\net7.0-windows'. Не удается найти указанный файл.
    Так, как существуют некоторые отличия класса Process от .NET Framework.
    Process.Start позволяет запускать приложение напрямую, например, с помощью такого кода, как Process.Start("mspaint.exe"), который запускает Paint. Это также позволяет косвенно запускать связанное приложение, если для параметра ProcessStartInfo.UseShellExecute задано значение true. В .NET Framework значение по умолчанию для ProcessStartInfo.UseShellExecute равно true,
    это означает, что такой код, как Process.Start("mytextfile.txt"), запустит Блокнот, если вы связали файлы .txt с этим редактором. Чтобы предотвратить непрямой запуск приложения в .NET Framework, необходимо явно задать для ProcessStartInfo.UseShellExecute значение false. В .NET Core значение по умолчанию для ProcessStartInfo.UseShellExecute — false. Это значит, что
    , по умолчанию связанные приложения не запускаются при вызове Process.Start.
    Поэтому начиная с версии Net 6 надо UseShellExecute = true выставлять программно через создание нового объекта new ProcessStartInfo.
    В итоге получаем такую конструкцию:
    a) c прямой ссылкой  'Process.Start(new ProcessStartInfo{ FileName = "www.google.ru";, UseShellExecute = true });
    б) Через атрибут Tag  Process.Start(new ProcessStartInfo { FileName = ((string)llSyte1.Tag), UseShellExecute = true }); - соответственно.
  • Что было сложным: Было не сложно, ибо гугл все знает, но над проектами сижу наскоками, в свободное время. Иногда приходится отвлекаться, а таймер тикает. :)
  • Оценка видео-уроку:
Отчёт от 35968 за Демо софт / Менеджер паролей


Отчёт от 35968 за Демо софт / Менеджер паролей




Оцени работу

 
Сохранить страницу:

  • Отчёт оценивали:
    25450MaxB+1   33758Хоанг+1   35954Антон0   30187Tim+1   31374Залимхан+1   791Валерий Жданов+1   35968Родион+1  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: object sender , TableLayoutPanel , "Запасной карман" Teg . Веселый урок
Трудности: Попытка не пользоваться object sender или if-else



Научился: Отличный урок. Научился открывать ссылки в браузере, копировать текст в буфер, выделять текст... Сделал как в видео уроке, но решил доработать. Захотел сделать не 3 строки в tableLayoutPanel, как в видео примере, а поле с выпадающим списком....Так же, чтобы поля логин и пароль были в единичном экземпляре и менялись в зависимости от выбора поля списка...Ну и до кучи, чтобы можно было прямо из формы дописывать новые значения в список... 1) Решил воспользоваться элементом ComboBox (заодно и разобраться как он работает). Добавил его вместо Label Link. Поле "логин" оставил как в видео примере. Поле пароль сделал звездочками TextBox (так больше нравится, чем кнопка) 2) Далее занялся вопросом наполнения списка. Оказалось не все так просто, как я думал))) Добавил в него предопределнные значения и понял, что мне это ничего не дает...Ведь в нем получится хранить имя сайт...А где тогда будут логин и пароль? Отложил вопрос и решил для начала добавить программно список сайтов. 3) На форме сделал несколько полей (название сайта, логин, пароль и кнопку “добавить”). Пометил их так же в tableLayoutPanel. Сделал CheckBox, решив от его состояния показывать поля добавления или нет... Пришлось поковыряться с привязками, чтобы отображение было нормальным. Так же долго возился с центрированием формы (если есть доп. меню или оно скрывается). В итоге погуглил и как результат смог написать функцию, которая определяет центральное положение формы с учетом изменения ее размеров в зависимости от того показано ли доп. меню или нет. 4) Когда все было готово и добавление в список наладилось, я заметил что, закрыв программу, список открывался пустой...Погуглив понял, что необходимо хранить данные в файле.. Сделал текстовый файл в папке с проектом. Написал функцию записи в файл при нажатии кнопки “добавить”. А при загрузке формы функцию которая считывает данный файл, парсит строки и наполняет список... В общем проделал для себя огромную работу по прокачиванию навыков..Почти все вышеописанное делал впервые...Было очень интересно. Затянул меня С# )))
Трудности: Искать в слепую методы и варианты решения поставленных перед собой задач.