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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

Реализация 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 мин
Количество просмотров6.7K

После перехода 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.5K

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

Установка Jupyter Notebook в Windows

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

В одном из предыдущих постов мы уже разбирали работу в интерактивном блокноте на примере Google Colab. Возможность написания кода в ячейках (почти как в MS Excel!), удобное выполнение в интерактивном режиме и совмещение с блоками красиво оформленного текста делает работу с данными — в том числе биологическими — гораздо приятнее. 

Кроме того, заполненный и хорошо оформленный блокнот избавляет от необходимости придумывать коду какой-то интерфейс и вместо решения биологических задач тратить время на фронтенд-разработку. Блокнот вполне можно передать коллегам, обладающим лишь минимальными навыками Python, чтобы они ввели в него свои данные и воспользовались им для расчётов. То есть это хороший вариант для работы с биологами из «мокрых» лабораторий.  

У интерактивного блокнота есть и офлайн-реализация, которая называется Jupyter Notebook (Рис. 1). Установить его можно разными способами.

Читать далее

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

Клонируем UWP-приложения – проще чем кажется

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

Ни для кого не секрет, что на смартфонах под управлением операционной системы Android можно клонировать приложения. Иногда этот функционал даже встроен в систему. Один из примеров тому – (не) всеми любимая MIUI, которая, начиная с двенадцатой версии, уже умела создавать дубликаты приложений.

Однако если речь идёт о Windows 10/11, то я не встречал решений для клонирования UWP-приложений. Давайте попробуем это исправить!

Читать далее

Кроссплатформенный терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 2

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

Прошло уже достаточно времени с публикации моей предыдущей статьи. За это время я значительно улучшил приложение. Миграция проекта с WPF на Avalonia UI, появление версий для Windows и Linux, обновленный дизайн, работа с числами типа float, а также другие возможности появились в новой версии моего Modbus терминала.

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

Читать далее

Как я писал «Вирус-бякус» на Delphi (шутка родом из конца 90-х)

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

Началось всё в самом конце 90-х годов, когда мне в руки попал диск с пиратской копией Delphi какой-торанней версии и на глаза попалась статья из Delphi World про управление лотком CD‑ROM'а. «Блин, да это же идея для вируса!», — подумал я...

Читать далее

Разработка служб для Windows на C++

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

В данной статье описан пошаговый процесс разработки служб для операционной системы Windows с использованием языка программирования C++.

В статье будет представлена теоретическая база по работе служб в Windows, рассмотрено их общее устройство и будет реализовано приложение, с помощью которого можно будет устанавливать свою службу, запускать её, останавливать и удалять (деинсталлировать).

Читать далее

Файловая система без фокусов: как hard links и XOR сэкономят ваши гигабайты

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

Для начала нужно понять главное - файлов не существует.
А потом на примере простых манипуляций разобрать что такое hard links, чем может быть полезен непонятный XOR и как это всё уживается в системах копирования и снимков

Читать далее

Как сделать React Server Components в Electron с помощью Next.js и без открытых портов

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

Статья про то как заставить работать React Server Components внутри Electron приложения с помощью Next.js при этом не запуская локальный сервер и не открывая порты. С возможностью публикации стандартными инструментами. А также исследование зачем все это надо.

Читать далее

WorkStarter: утилита для автоматизации запуска программ при старте Windows

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

Привет, Хабр! 👋 Хочу поделиться небольшим проектом, который я разработал для решения личной задачи. Возможно, кому-то он тоже пригодится.

Что это такое?

WorkStarter - это простая утилита для Windows, которая позволяет автоматически запускать программы и открывать веб-сайты при старте компьютера. Основная идея заключается в том, чтобы упростить процесс подготовки рабочего окружения после включения ПК.

Основные возможности
- 🖥️ Автоматический запуск программ
- 🌐 Открытие веб-сайтов
- ⏱️ Настройка задержки для каждой задачи
- 🎨 Графический интерфейс для управления задачами
- 🔧 Хранение конфигурации в JSON-формате

Как это работает?

WorkStarter состоит из двух основных компонентов:

1. WorkStarter Configuration - графический интерфейс для настройки задач.
2. WorkStarterAgent - фоновый процесс, который запускается при старте системы и выполняет настроенные задачи.

Конфигурация хранится в файле config.json в пользовательской директории приложения.

Технические детали

Проект написан на Python с использованием следующих библиотек:
- PyQt6 для создания графического интерфейса
- asyncio для асинхронного выполнения задач
- appdirs для управления директориями приложения

Установка и использование

1. ⬇️ Скачайте последнюю версию WorkStarter
2. Запустите установщик и следуйте инструкциям
3. После установки запустите "WorkStarter Configuration" из меню "Пуск"
4. Добавьте нужные задачи через графический интерфейс
5. WorkStarterAgent будет автоматически запускаться при старте системы

Ограничения и планы на будущее

На данный момент утилита работает только на Windows и имеет ограниченный функционал. В будущем планируется:

Читать далее