Тёмный

Уроки C# - WinAPI + свой контрол (2 в 1) 

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

Донаты ➜ t.me/win10twea...
Эксклюзив для спонсоров ➜ / xpuct
Если недоступна спонсорка ➜ boosty.to/xpuct
#Уроки #WinAPI #WindowsAPI

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

 

26 сен 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 82   
@XpucT
@XpucT 3 года назад
Как открыть Блокнот и вставить в него текст: // Импорт [DllImport("user32.dll", EntryPoint = "FindWindowEx")] public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow); // Импорт [DllImport("User32.dll")] public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, string lParam); // Метод public void Notepad(string line) { var notepad = Process.Start("notepad.exe"); notepad.WaitForInputIdle(); SendMessage(FindWindowEx(notepad.MainWindowHandle, new IntPtr(0), "Edit", null), 0x000C, 0, line); } // Вызываем Notepad("Важный текст");
@ЕвгенийБорисов-е1ч
в вёрстке просто дабавить элементу border-radius: 10px; а в по видео можно 2 ракеты построить)))
@ВикторКуликов-ь6н
@ВикторКуликов-ь6н 3 года назад
Очень интересные темы видео! Не на многих каналах такое есть. Спасибо
@MathPTU
@MathPTU 24 дня назад
насколько я знаю, что сначала, чтобы понять ВинАпи нужно изучить Операционные Системы, а потом будет как то понятно как там все взаимодействует
@aleksesmotsar1519
@aleksesmotsar1519 3 года назад
Пошла жесть, пьём мексидол и за работу!
@aleksesmotsar1519
@aleksesmotsar1519 3 года назад
@@MetaJamm Видимо, мы с вами живём на разных западах. В моей стране атропины применяются массово, а польза янтарной кислоты ни у кого не вызывает сомнений или вопросов. Но всё равно спасибо за развёрнутый комментарий. Не поленились ведь.
@Andymit
@Andymit 3 года назад
Либо я не так понял пояснение про вызов base.OnPaint(e), либо Вы не правильно объяснили. Ключевое слово base используется для доступа к членам базового класса. То есть в нашем случае этой строчкой мы вызываем метод базового класса Button, а не саму себя вызываем..
@oleg_kishinskii
@oleg_kishinskii 3 года назад
О! Нашел наконец-то Весь RU-vid перерыл :)
@ЕвгенийКривоносов-о1ъ
Спасибо)
@konstantanter
@konstantanter 3 года назад
Тоже планирую делать свои уроки. Есть библиотека платная с уже нарисованными контролами. Мы (я и какой то ютубер) делали свою бесплатную которая рисовала такие же но только бесплатные 1. У контрола должны быть свои методы которые можно менять в свойствах И тд и др. Спасибо за урок. Но я делал это
@thomasaminer
@thomasaminer 4 месяца назад
Ракетостроение)
@mr.alexhackchannel7368
@mr.alexhackchannel7368 Год назад
7:12 IntPtr hWnd это не void. Он принимает Handle окна, а точнее указатель на него. Чтобы передать функции родителя. То есть, если говорить коротко, функция MessageBox будет знать кто родитель у неё и если передать Handle текущей формы Form1, то будет отображаться как ShowDialog и не даст клацнуть по родительской форме.
@XpucT
@XpucT Год назад
Ниже уже обсуждалось, но за лайк самому себе - это зачёт 👍
@ZiyadIbrahimov
@ZiyadIbrahimov 3 года назад
Спасибо!!!!
@loger_1328
@loger_1328 3 года назад
Красавчик! Очень полезно и понятно
@skarabeydm
@skarabeydm 3 года назад
Почему-то когда я попробовал перетащить эту кнопку в прогу, вылезло сообщение: *"Не удалось загрузить элемент [название элемента]. Он будет удален из набора инструментов."* И, собсна, кнопка удалилась из Панели элементов. Проблему решила кнопка *Сборка > Собрать решение, или Ctrl + Shift + B*
@BlendLogDev
@BlendLogDev 3 года назад
Так получается можно откуда угодно достучаться до любого окна, виртуально двигать мышкой, нажимать кнопки сделав такой примитивный "симулятор нахождения за ПК"?)))
@XpucT
@XpucT 3 года назад
Совершенно верно =)
@ori-d
@ori-d Год назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-KYq2WF3otxc.html Если ты работаешь с неуправляемой памятью, я тебя поздравляю, ты сделал утечку памяти! Продолжай учить людей делать утечки памяти!
@XpucT
@XpucT Год назад
Старался оставить только то, что нужно. Сейчас вот посмотрел и да, стоило оставить удаление объекта. Однако, в данном кейсе не стоило делать замечание настолько драматизированно. Замечания можно делать, не корча из себя гуру кода 👍
@maxekonomist1392
@maxekonomist1392 11 месяцев назад
может можно небольшой курс по api? )
@acer6788
@acer6788 Год назад
Столкнулся с такой проблемой, что контрл-кнопку проект не видел, для того чтобы увидел нужно клас сделать public
@Razor_Zet
@Razor_Zet 8 месяцев назад
Столкнулся с такой проблемой: код из видео строит кнопку с обрубленными углами, то есть она не чётко закруглённая, а пропадают некоторые пиксели у закругления. Можно добавить каике-то методы, чтобы отрисовка была более качественной без искажений?
@redfox7193
@redfox7193 3 месяца назад
По идее можно использовать элемент PictureBox. Топорно, но можно сделать как нужно.
@UFO26
@UFO26 Год назад
19:38 А как сделать чтобы в свойствах макета пользовательской кнопки появились две переменные: "nWidthEllipse/nHeightEllipse" ? Чтобы величину скругления выбирать не программно, а кликом мыши.
@XpucT
@XpucT Год назад
Привязать переменную к UI. Обо всём об этом на канале всё есть, если смотреть последовательно: ru-vid.com/group/PL05SB3rBbUsraqiEUeS70RKhVAu97nGeb
@padla6304
@padla6304 Год назад
используйте WPF и не ломайте себе голову товарисчи
@invokevirtual.
@invokevirtual. 2 года назад
А можно ли сделать много таких утилок, ну типо методов с рисованием в 1 классе? чтобы там были например методы - { "RoundedButton", "RoundeTextBox", RoundedProgressBar" }; ?
@XpucT
@XpucT 2 года назад
Да, сколько угодно.
@invokevirtual.
@invokevirtual. 2 года назад
@@XpucT спасибо.
@caiiiook6858
@caiiiook6858 2 месяца назад
А ГДЕ ВИДЕО ПО СОЗДАНИЮ ДЛЛ ?
@drakula_6175
@drakula_6175 3 года назад
Здравствуй, есть вопрос по поводу MessageBox. При заполнении элемента Combobox данными через ItemSourse не срабатывает без добавления сточки MessageBox.Show("Текст") перед Combobox.SelectItem= Объект.Поле . Если MessageBox добавить , то элементы появляются в приложении, если нету MessageBox - не появляется(Пустой Combobox). Это баг такой или магия MessageBox???
@РусланБровко-к3ч
@РусланБровко-к3ч 2 года назад
Добрый день, уважаемый автор канала. Подскажите пожалуйста, как добавить на панель элементов вкладку с элементами проекта??
@XpucT
@XpucT 2 года назад
Доброе утро ☀ Попробуйте _Собрать решение_ и просто перезапустить проект.
@РусланБровко-к3ч
@РусланБровко-к3ч 2 года назад
@@XpucT, к сожалению - не помогло... Панель элементов наотрез отказывает отображать мои компоненты. Может, дело в настройках среды?
@XpucT
@XpucT 2 года назад
@@РусланБровко-к3ч нет, это глюк. Постарайся в точности повторить действия из видео. Не торопясь.
@РусланБровко-к3ч
@РусланБровко-к3ч 2 года назад
@@XpucT Перезапуск студии, создание нового проекта и повторение действий не дали должного результата... Очистка и сборка решения также не помогла. Панель элементов не хочет отображать вкладку с созданным кастомным компонентом.
@alexdrake913
@alexdrake913 3 года назад
Спасибо за урок! Можете сделать видео "Работа с БД?" А именно mysql?
@XpucT
@XpucT 3 года назад
Такой урок будет. Но скорее всего для спонсоров, ибо заморочек слишком много. На один монтаж заблюрирования всего и вся уйдёт очень много времени, а на тестовом сервере ничего не показательно.
@alexdrake913
@alexdrake913 3 года назад
@@XpucT даже если для спонсоров, было бы очень интересно посмотреть урок именно от Вас
@HeyWhoTheFuckAreYou
@HeyWhoTheFuckAreYou 3 года назад
Оооо, я через функции WinAPI делал кликер который не использовал мышку, а делал фейковые нажатия в программах.
@BlendLogDev
@BlendLogDev 3 года назад
Программа "симулятор работы сотрудника на c#"
@HeyWhoTheFuckAreYou
@HeyWhoTheFuckAreYou 3 года назад
@@BlendLogDev та не ботоводство типо :D
@blick3
@blick3 2 года назад
Как-то можно с тобой связаться?
@donatello752
@donatello752 3 года назад
Вот оно средство от депрессии.
@eir7775
@eir7775 3 года назад
А можно сделать также, но на wpf?
@XpucT
@XpucT 3 года назад
Можно. Там то же самое.
@eir7775
@eir7775 3 года назад
@@XpucT OnPaint говорит не существует, а про регион говорит мол он является типом но используется как переменная
@3x__
@3x__ 2 года назад
👍
@RaptorTMP
@RaptorTMP 3 года назад
Привет Хачатур. Открыл в интернете ещё одно направление для ракетостроения, это написание служб для Windows. Там такое творят я аж в осадок выпал. Плюнул на всё, сделал с костылями, но по-своему. Как мне показалось, что это всё же лучше того, что предлагают интернет гуру. Пара вопросов: есть ли реально короткие пути в написании служб и можно ли их отлаживать прямо в дабагере IDE без сатанизма с предварительной проверкой в консольном проекте? Надеюсь, тема интересная ты и снимешь об этом видео. Спасибо)
@XpucT
@XpucT 3 года назад
Привет 🖐 Я создаю службу в 1 строку =))) Думаешь шучу? Нет =)) Создаю, запускаю и удаляю в 1 строку. Но если говорить о сложных комбинациях, то всё равно строк немного. Ты не первый, кто про службы спрашивает. Взял на заметку ;)
@RaptorTMP
@RaptorTMP 3 года назад
@@XpucT Круто, буду ждать)
@redtayron6390
@redtayron6390 3 года назад
Здравствуй Хачатур, Спасибо за очередной увлекательный урок, у меня один вопросик, я сделал все так, как у тебя в видео, но у меня вылетает "Ошибка CS0426 Имя типа "MyControll" не существует в типе "Form1"" как это исправить, буду благодарен за подсказку.)
@XpucT
@XpucT 3 года назад
Привет 🖐 Ответ очевиден. Проблема в имени MyControll. Внимательно смотри кто откуда наследуется и как называешь всё ;) Половину Ты видимо по уроку сделал, а половину по-своему =)
@redtayron6390
@redtayron6390 3 года назад
@@XpucT Спасибо за совет ))
@builderNITRO
@builderNITRO 3 года назад
Первый
@user-wu-tang
@user-wu-tang Год назад
Привет ув. Хачатур закругление к какому контролу можно еще применить? Например для кнопки, да круто смотрится. У кнопки можно выставить FlatStyle и BorderStyle, и только в этом случае смотрится красиво, если эти свойства не выставить, то даже на кнопке смотрится топорно Поглядел я на свойство формы, textBox а там таких свойств нет (FlatStyle и BorderStyle), а если например хочется закруглить textBox , что делать? Другой метод, или всё же можно этим методом.
@XpucT
@XpucT Год назад
Привет 🖐 Не пробовал. Как найду время попробую. Отметил себе ✍🏼
@lisiger69
@lisiger69 2 года назад
А можно ли с других приложений считывать данные? Например « Какой-то приложение достает данные из базы и мне надо это заполнить онлайн и в форму». Мне постоянно приходиться Ctrl+C и Ctrl+V. Доступ к базе не дают.
@XpucT
@XpucT 2 года назад
Вообще можно. Но это нужно изучать injecting.
@padla6304
@padla6304 Год назад
лучше нет квадратной кнопки ведь это кнопка а не жопка )))
@rKvinty
@rKvinty 3 года назад
10:41 А что это за выделение крутое?
@ltlo9284
@ltlo9284 3 года назад
Выделяешь через alt + лкм
Далее
Уроки C# - Глобальный Catch
4:39
Просмотров 7 тыс.
CORTE DE CABELO RADICAL
00:59
Просмотров 1,1 млн
Уроки C# - склеиваем exe и dll
11:35
Просмотров 24 тыс.
Flexy
31:58
Просмотров 35 тыс.