Как стать автором
Обновить
42.88

Разработка под Windows *

Разработка под операционные системы от Microsoft

Сначала показывать
Порог рейтинга
Уровень сложности

3D графика на форме в Lazarus IDE

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.1K

При разработке приложения иногда возникает необходимость в создании трёхмерной визуализации. Например, это может быть отрисовка трёхмерной поверхности с наложенной текстурой или отображение трёхмерной модели детали или сборочной единицы проектируемого изделия. Помимо визуализации, пользователю следует предоставить функционал для интерактивного взаимодействия с моделью — возможность вращать, приближать и перемещать её в области просмотра.

Читать далее

Новости

Демонстрация виртуального дисплея без задержки с DXGI. Или как получить второй монитор из ноутбука/телефона/планшета

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.1K

Разберем несколько существующих методов захвата экрана и способы трансляции по сети с минимальной задержкой как если бы это был второй монитор подключенный к отдельному порту.

Читать далее

Похищаем CheatEngine на C++ с нуля. Часть 0 — Введение

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров7K

Данной статьей я хочу продемонстрировать процесс погружения в неизвестную сферу, методы и средства для сбора информации. Чтобы раз и навсегда закрыть вопрос какие материалы “почитать”, ведь, действуя по гайду “я повторил, но ничего не понял”.

Что именно будем делать? Попробуем без особых знаний залезть в исходники софта для отладки и модификации кода, под названием Cheat Engine. Он создавался годами, а наша задача — апроприировать эти знания за короткий промежуток времени!

Читать далее

Генерация PDF документов в Lazarus IDE

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров1.3K

Для разработки различных заглушек, используемых для тестирования сервиса, пока не готова ответная часть, я иногда использую отрисовку нужной информации на Canvas PaintBox`а, и последующую генерацию PDF с отрисованной картинкой (сохраняю BMP в поток, затем загрузка из потока для размещения изображения в PDF) и дополнением документа текстовой информацией. Для реализации такого подхода я использую модуль fpPDF, который, на мой взгляд, является достаточно простым и удобным. Для ознакомления с возможностями модуля ниже привожу вольный перевод статьи разработчика данного модуля.

Читать далее

Истории

Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 2

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров34K

Приветствую! Эта статья является продолжением (2 частью) статьи Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1 Если честно, я был приятно удивлен популярностью первой части: 115К просмотров за неделю и 137 голосов, которые принесли мне 21 место в рейтинге Хабра. Учитывая, что эта статья была из песочницы (отдельное спасибо @Ilha за приглашение), для меня это большой результат. Поэтому всем, кто поставил стрелочку вверх – авторское спасибо!)

В этой статье я покажу, как можно скачивать с YouTube каналы и плейлисты. Если кто-то не читал первую часть, настоятельно рекомендую это сделать. По крайней мере, если по мере чтения у вас возникнут какие-то вопросы, скорее всего там есть на них ответы. Напомню, что у нас уже есть средство, которое решает "проблему с устаревшим и изношенным оборудованием Google Global Cache" (к сожалению, оно не у всех работает, учтите), а также мы разобрались с тем, как скачивать с YouTube видео и аудио в любом качестве. Итак, начнём!

Читать далее

ReactOS и 2024 год

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров6.8K

Вот и подходит к концу 2024 год. Давайте вспомним, чем он запомнился для ReactOS. Хоть на мой взгляд в этом году не было чего-то супер-особенного, но все равно у нас есть что вспомнить в данной статье.

Читать далее

Векторная графика на форме при разработке приложений в Lazarus IDE

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.7K

Для визуализации данных на форме приложения, или для иллюстрации подсказок, не всегда можно использовать растровые изображения, так как при изменении размера формы или масштаба отображения на дисплее, изображения могут становиться размытыми и выглядят очень плохо. Именно здесь на помощь могут прийти векторные изображений, в формате SVG.

Читать далее

Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров159K

Современный мир пресыщен различной информацией, и в наше непростое время её важно уметь не только находить и сохранять. Многие наверняка заметили, что в на YouTube, кроме мусора, котиков и прочих бесполезных вещей (которые мы иногда не прочь посмотреть) есть масса полезного материала по самым различным темам. И иногда этот материал неплохо было бы сохранить себе на будущее, чтобы не зависеть от переменчивых настроений в мире.

В этой статье я хочу рассказать, как можно скачивать видео, аудио (1 часть статьи), плейлисты и целые каналы с YouTube (2 часть статьи) без использования VPN и на чистом Python-е. Сразу оговорка: VPN нам не понадобится, но мы сделаем собственное средство, которое будет решать "проблему с устаревшим и изношенным оборудованием Google Global Cache" (вы поняли, о чём я). Я думаю это средство будет особенно актуально сегодня, когда у многих россиян YouTube почти или совсем не работает.

Читать далее

Использование шрифтов с пиктограммами при разработке приложений в Lazarus IDE

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.1K

Как использовать наработанные в команде изображения пиктограмм при создании приложения в Lazarus IDE?

Обычно все используемые пиктограммы уже упакованы в шрифт, и здесь мы рассмотрим несколько вариантов его использования для оформления элементов приложения.

Читать далее

Программа, которая падала на первой команде

Время на прочтение9 мин
Количество просмотров12K

Нашего клиента донимали отчёты о вылетах, показывавшие, что его программа ломается на самой первой команде.

Я открыл один из дампов вылета, он оказался настолько странным, что отладчик даже не мог понять, что пошло не так.

Читать далее

Lazarus IDE для аналитика. Приемы работы в современном Free Pascal — 2

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров2.6K

В предыдущей статье Lazarus IDE для аналитика. Приемы работы в современном Free Pascal — 1 приведены приемы работы, связанные с базовым синтаксисом Free Pascal, в продолжении темы целесообразно привести материалы, касающиеся приемов работы и рекомендаций по ООП.

Читать далее

Start Me Up: Как Windows 95 завоевала сердца пользователей

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров5.3K

Появление Windows 95 в августе 1995 года стало поворотным моментом в истории компьютерной индустрии. Запуск новой системы сопровождался грандиозной рекламной кампанией. Microsoft не поскупилась на средства: Rolling Stones исполнили «Start Me Up» в рекламном ролике, Джей Лено рекламировал систему, а звезды «Друзей» снялись в обучающих видео. Очереди у магазинов, таких как CompUSA, растянулись на кварталы. Запуск системы стал событием, о котором говорили все.

Windows 95 стала не просто технологической новинкой, а частью поп-культуры. Запоминающийся звук запуска системы, узнаваемые иконки и простота использования стали символами эпохи и оставили неизгладимый след в памяти миллионов пользователей.

В этой статье мы расскажем, как опыты бихевиористов помогли создать знаменитую кнопку «Пуск», почему распространилась шутка о том, что Windows 95 заставляет плакать, понастальгируем над старым интерфейсом и разберем, почему именно Windows 95 определила взаимодействие с компьютерами и технологиями на многие годы вперед.

Читать далее

Todo-лист на максималках: разбираем архитектуру крупного приложения

Уровень сложностиСложный
Время на прочтение31 мин
Количество просмотров5.9K

В этой статье я покажу, как устроена многослойная архитектура крупного реактивного web-приложения, и особенности его запуска под Electron. Материал будет полезен, если вы планируете начать свою разработку, хотите попробовать себя в роли архитектора, вас не пугает Shared Workers, Service Workers или, в конце концов, вы хотите это попробовать или разобраться.

Читать далее

Ближайшие события

11 – 13 февраля
Epic Telegram Conference
Онлайн
27 марта
Deckhouse Conf 2025
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

Реверс-инжиниринг программы мониторинга артериального давления: от анализа к разработке

Уровень сложностиСложный
Время на прочтение53 мин
Количество просмотров1.3K

Передо мной встала задача провести реверс-инжиниринг программы мониторинга артериального давления для устройства Spacelabs OnTrak 90227 ABP Monitor.

Устройство подключается через USB и определяется системой как виртуальный COM-порт.

Программа, с которой мне предстояло работать, 32 битная, написана на C++ с использованием MFC и была выпущена в 2010 году.

Основная цель — найти код, связанный с кнопками «Выгрузить монитор» и «Инициализировать монитор», чтобы осуществить обмен данными с устройством.

На основе найденного кода нужно разработать консольное приложение, которое будет инициализировать устройство для последующих измерений или считывать данные с устройства и записывать результаты в файл.

Читать далее

Lazarus IDE для аналитика. Приемы работы в современном Free Pascal — 1

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров3.7K

Понятно, что проектирование программного обеспечения это достаточно важный этап разработки, на котором необходимо продумать архитектуру будущего приложения, выбрать, например шаблон проектирования, продумать модель данных, типы и схемы базы данных, методы работы с данными, возможные варианты реализации API, варианты внешнего вида приложения и т.п. В материалах ниже будут приведена информация которая призвана помочь сделать такую работу более правильной.

Читать далее

Баг в реализации SRWLock в Windows вешает многопоточные программы

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров3.1K

Реализация SRWLock (Slim Reader/Writer Lock) на Windows может привести к серьёзным проблемам: многопоточное приложение может зависнуть (deadlock).

При частой конкуренции многих потоков, удерживающих shared_lock, и хотя бы одного потока, пытающегося получить unique_lock, возможно возникновение ситуации, когда потоки оказываются в состоянии взаимного ожидания. Код выглядит абсолютно корректным, но приложение зависает внутри вызова в WinAPI.

Это касается любых многопоточных программ для Windows, которые явно либо неявно используют SRWLock для синхронизации. В том числе написанных на старых реализациях Rust, пока в Rust не заменили реализацию для Windows, отказавшись от SRWLock (GitHub Issue). В том числе написанных на C# (фикса пока нет) и т.д.

Читать далее

Служба Windows на C# в .Net 9 (Telegram.Bot)

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров5.8K

После перехода Microsoft с .NET Framework на .NET Core программирование на C# стало более увлекательным, хотя некоторые аспекты изменились.

В частности, шаблон проекта Служба Windows (.NET Framework) создаёт класс, наследник от ServiceBase в пространстве имен System.ServiceProcess. Прогеру предлагается  реализовать виртуальные методы базового класса OnStart и OnStop, которые задают действия, подлежащие выполнению при запуске (остановке) службы, что собственно и есть суть и назначение Службы Виндовз. Регистрация Службы в этом случае производится с помощью утилиты installUtil.exe, в .Net Core это делается утилитой SC.exe.

Реализовать службу на .NET Core (в моем случае .NET 9) не сложнее, но по другому, шаблон проекта теперь называется Worker Service (Microsoft), а рабочий класс наследуется от BackgroundService.

В этой статье я подробно опишу процесс создания, публикации и регистрации Службы в .Net 9 на примере службы для Telegram-бота (сокращенно — Телебот). Почему бот? Во-первых, писать Телебота на C# — это действительно приятно. Во-вторых, чтобы обеспечить его круглосуточную доступность на сервере под управлением Windows, логично использовать именно Службу Windows, которая будет поддерживать его работу в фоновом режиме и запускаться может сама при перезагрузке сервера.

В заключении рассмотрим как добавить логирование в стандартный виндовый EventLog и немного обсудим функционал самого Телебота.

Читать далее

Создание двуязычных субтитров к видео, распознавание и перевод речи

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров2.1K

При изучении иностранных языков, иногда хочется иметь двуязычные субтитры к понравившемуся видео, озвученных носителями языка. Но, что делать, если готовых субтитров нет, а самому распознать и перевести живую речь героев не хватает знаний? Особенно это касается тех, кто только-только начинает осваивать новый язык. Но, как говориться, безвыходных ситуаций не бывает, как минимум, всегда существует три выхода, даже если вас съели.

В данном случае мы воспользуемся современными технологиями для решения нашей задачи.

Читать далее

Библиотека EremexControls.NET для Avalonia UI — Большое обновление (v 1.1 EAP)

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.8K

Библиотека Контролов EMX Controls для Avalonia UI позволяет вам создавать многофункциональные графические интерфейсы для Windows, Linux, macOS и WebAssembly. Почти полгода назад вышла первая версия контролов. С тех пор библиотека развивалась и расширялась – появились новые компоненты и новые функции. А сегодня у нас большая новость - мы выпускаем EAP (early-access preview) для версии 1.1.

Читать далее

Гайд по настройке Wt::Dbo и Visual Studio С++ для работы на Windows

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров887

Я использую PostgreSQL 12-й версии! На остальных не проверял! Соответственно, он у вас должен быть скачан и настроен для использования.

Читать далее
1
23 ...

Вклад авторов

Работа