Как стать автором
Поиск
Написать публикацию
Обновить
93.12

Windows *

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

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

Соглашения о вызовах

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

Это стандартизированные методы реализации и вызова функций.

Соглашение о вызовах опредяют как функция вызывается, как функция управляет стеком и стековым кадром, как аргументы передаются в функцию, как функция возвращает значения.

Читать далее

Прагматичный набор модификаций для Windows 10 на старом железе

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

В статьях про раздувание софта часто упоминают лаги Windows 10/11. Главная причина — ожирение кода в новых версиях. Для работы ОС с каждым годом требуется всё больше ресурсов. После засорения системы приходится ждать 10–20 секунд, пока отрисуются пункты контекстного меню по правой кнопке…

Конечно, можно купить новое железо. Или поставить дистрибутив Linux, оптимизированный для ограниченных ресурсов.

Но что делать, если приходится поневоле сидеть под Win10/11? Тогда остаётся одно — бороться с ожирением софта хирургическим путём. А именно, отключить ненужные модули и компоненты, развестистый GUI, анимацию и спецэффекты, удалить лишний софт, почистить реестр. Другими словами, спустить жирок из системы. После мануальных процедур винда начинает шевелиться значительно бодрее.
Читать дальше →

Проверка проекта Orleans статическим анализатором PVS-Studio

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

Orleans – кроссплатформенный фреймворк для создания масштабируемых облачных приложений. Это ПО разработано компанией Microsoft, проекты которой не раз проверялись анализатором PVS-Studio. Посмотрим, сколько подозрительных мест удастся найти в этот раз.

Читать далее

Как незаметно запускать виртуальный Linux на QEMU

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

О том, как замаскировать QEMU с Linux под приложение на Windows.

В некоторых задачах Linux просто необходим. И самым ярким тому примером на сегодня является наличие системы WSL. Однако не везде ею можно пользоваться. Некоторые предприятия принципиально застревают на Win7. И их можно понять. Эта система не столь требовательна к железу (особенно к видео-подсистеме), не ломится чуть-что в интернет, да и в Ultimate варианте вообще не требует подключения к глобальной сети.

В большей части случаев можно обойтись родными для системы средствами разработки и сторонними инструментами. Но представьте себе, что для работы Вашего комплекса нужно собрать вместе более десятка не маленьких opensource проектов с перекрёстными зависимостями. Причём часть из них написана под python (и тут никаких проблем нет - виртуальная среда и всё ок), а часть собирается в бинарные исполняшки, от которых зависят другие модули. И тут может быть как минимум три решения.

Читать далее

Как определить версию Windows?

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

Как же определить версию Windows, работающую в корпоративном окружении?

Вопрос кажется простым, правда?

Microsoft позволяет определить номер версии Windows различными способами:

  • Существуют значения в реестре, которым отчаянно не хватает документации.
  • Есть множество командлетов PowerShell, вызовов Windows API и т. п.
  • Также есть варианты для конечного пользователя, например, команда winver, которая вызывает всплывающее окно с версией Windows.
  • И много других способов…

Разобраться во всём этом вам поможет наш пост.
Читать дальше →

Новый механизм мониторинга компиляции в PVS-Studio для Windows

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

В релизе PVS-Studio 7.18 утилита мониторинга компиляции для Windows получила новый механизм, который позволяет полностью устранить пропуски запусков компиляторов. В этой статье мы напомним, как наш анализатор справляется с разнообразными системами сборки и расскажем о реализации нового режима Wrap Compilers.


0954_CLMonitor_IFEO_ru/image1.png

Читать дальше →

Надгробья современного геймдева. Добрососедское

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

Как гласит старинная скандинавская максима, "С соседями своими в мире живи, чтобы не сожгли дома твоего".
К сожалению, даже в такой критически важной мелочи, как добрососедское сосуществование с иным софтом, в геймдеве (да и, чего греха таить, в целом по IT) наблюдается хронический непроглядный швах.
В лучшем случае из конфликта между двумя программными продуктами получается внеочередной товарищеский матч между техподдержками этих программ, по виду спорта "футбол пользователем".
В худшем - тот софт, который половчее, устраивает показательную децимацию компьютеру пользователя (и, by extent, софту-оппоненту), ибо нефиг скрещивать лучи.

Формально, окончательное решение добрососедского вопроса перекладывается... на Минимальные Системные Требования. Потому, что МСТ должно хватать на работу ОС + приложения - и оставаться ещё капельку на всё остальное.
Или на инструкции по установке. Поставил наше приложение - удали все чужие.
Или на FAQ на сайте игры. Поставил наше приложение, но оно не работает? Удали все чужие.
На что угодно, кроме здравого смысла и умеривания своих неадекватных хотелок.

Статья чуть более общего профиля, чем обычно. Но длинные слова в ней всё ещё огорчают Винни-Пуха.

Вы готовы к ужасному?

"Да, Капитан!"

Кнопка “Mute” не выключает микрофон

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


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

Однако нативной программе ничто не мешает даже после нажатия кнопки “Mute” снимать звук с микрофона и передавать его на сервер. Некоторые программы так и делают.
Читать дальше →

Пишем свой Credential Provider на C# для авторизации в Windows

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

Credential Provider, используется для передачи пользовательских учетных данных в стек безопасности Windows. По умолчанию в системе присутствуют поставщики для входа через пароль, PIN-код, смарт-карту и Windows Hello. Однако что делать если они нам не подходят?

Пишем свой Credential Provider

Раз-два и в дамки: минимакс с альфа-бета отсечением

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

Дисклеймер: это моя первая статья на Хабре и я не программист.

Всем привет! Под катом небольшая история о том, как я делал свой первый, большой, самостоятельный (если его так можно назвать) "проект" – курсовую работу на тему "Игра в поддавки с компьютером". Если вам интересны алгоритмы для антагонистичесих игр, С# и особенности студенческой жизни – welcome!

Читать далее

Flutter & games: пробуем Bonfire в роли игрового движка

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

Всем привет! Продолжаю делиться своими раскопками в области использования Dart и Flutter не совсем по назначению. Хотя, учитывая недавний выход в релиз тулкита от Flutter для разработки казуальных игр (https://flutter.dev/games), можно сказать, что статья как раз тематическая. Ну, решайте сами. Кому интересно, что может выйти, если попробовать сделать на Flutter игру серьёзнее "крестики-нолики" и взять в качестве основы фреймворк Bonfire - приглашаю под кат.

Читать далее

Wix toolset: не так страшен черт, как Windows installer

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

В статье я хотел бы поделиться своим опытом написания инсталлятора для Windows с использованием инструмента Windows Installer XML Toolset (далее - Wix). К сожалению, несмотря на всю мощь данного инструмента, его использование сильно осложняется куцей документацией, старенькими кукбуками, вялыми ветками форумов и вытеснением .msi и .exe пакетов контейнеризацией. Однако, сегодня продолжают активно развиваться и создаваться программные продукты требующие развертывания на виндовой машине с использованием традиционных установочных пакетов.

Читать далее

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

Windows Chrome: Исправляем задержку звука по Bluetooth

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

Когда смотришь youtube на Chrome под Windows с Bluetooth наушниками, аудио отстаёт от видео. А когда на Mac - нет. Как так? Давайте разберёмся и обучим виндовую версию синхронизации звука и видео.

Немного анализа, много реверса и готовое решение, которое слегка обманывает - всё под катом.

Читать далее

А давайте это отфильтруем

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

Как указано в документации Microsoft, стилизация элементов пользовательского интерфейса в экосистеме .net/WPF «позволяет разработчикам и дизайнерам создавать визуально привлекательные эффекты и согласованный внешний вид своих продуктов» и на первый взгляд, решает задачи, аналогичные задаче разделения содержания страницы HTML и её оформления через CSS.

Однако, стилизация WPF является гораздо более мощным инструментом, позволяющим существенно обогатить интерфейс программы (UI) без непосредственного изменения кода приложения.

Однажды была поставлена задача добавить во все отображаемые таблицы приложения возможность быстрой фильтрации по содержимому.

То есть необходимо изменить поведение для каждого столбца каждого элемента DataGrid каждого экрана… Сколько изменений в коде приложения потребуется для этого? Если проект на WPF, то достаточно подключить библиотеку и … добавить одну строку.

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

Полуфабрикат Windows-службы

Время на прочтение16 мин
Количество просмотров8.4K
Один из способов доморощенной классификации служб основывается на времени их жизни: некоторые из них запускаются сразу же при старте ОС, оставаясь активными постоянно (сюда, скажем, можно отнести веб-серверы и СУБД), другие же запускаются лишь при необходимости, делают свои архиважные дела и сразу завершаются; при этом, ни один из вариантов сам по себе не делает реализацию службы сложнее, однако второй требует от разработчика как минимум ещё и умения программно стартовать, а при необходимости и досрочно останавливать её работу. Именно указанный аспект управления службой, плюс добавление некоторых отсутствующих в штатной поставке Delphi возможностей, и сподвиг автора на данный опус.

Чтобы статья воспринималась максимально полезной и практичной, в ней предлагается заготовка (почти готовый к употреблению шаблон) службы, обрабатывающей очередь неких задач (или заданий – кому как больше нравится); после того, как все из них обработаны, служба тут же завершается. Если представить графически, то читатель познакомится со следующей конструкцией:

Взаимодействие службы с очередью и управляющим приложением
Читать дальше →

Сколько цветов может выдержать Windows Terminal?

Время на прочтение8 мин
Количество просмотров13K
Группа пользователей хотела реализовать простую видеоигру в терминале, но оказалось, что её производительность в Windows Terminal совершенно не подходит для такой задачи. Проблему с производительностью можно воспроизвести, многократно отрисовывая «радугу» и замеряя количество кадров в секунду (FPS). Показанная на рисунке радуга, состоящая из 20 цветов, на моём Surface Book с Intel i7-6700HQ отрисовывается с частотой 30 FPS. Однако если отрисовывать ту же радугу из 21 или более цветов, то частота упадёт ниже 10 FPS. Такое падение стабильно и ситуация не ухудшается даже при тысячах разных цветов.

Читать дальше →

Как Linux заменит Windows в РФ

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

Нынешние реалии

С введением санкций возникли серьёзные трудности в развитии промышленности страны. Трудности возникшие в IT затрагивают самый широкий спектр технологий. Возьмём, казалось бы, самую простую сферу деятельности, ввод и обработку данных. В каждой больнице, в регистратуре, стоит ПК на котором запущена программа для первичного учёта пациентов. Операционист вводит необходимую информацию и даёт талон для посещения врача. На этом компьютере установлена ОС семейства Windows которую сейчас мы не можем сейчас купить. Другой случай. Программируемый логический контроллер который управляет, к примеру, котельной и запрограммированный в среде CodeSys работающей тоже под Windows. И таких примеров очень много.

Читать далее

Flutter: Почему использует язык Dart

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

Почему Flutter использует язык Dart? Основные преимущества языка Dart.

Сложность: Новичок.

Многие лингвисты считают, что естественный язык, на котором говорит человек, влияет на то, как он думает. Применяется ли та же концепция к компьютерным языкам? Программисты, работающие с разными языками программирования, часто предлагают совершенно разные решения проблем. В качестве более радикального примера, ученые-компьютерщики убрали оператор goto, чтобы поощрять более структурированные программы (не совсем тоже самое, что тоталитарные лидеры в романе "1984", удаляющие еретические слова из естественного языка, чтобы устранить мыслепреступления, но вы поняли идею).

Какое это имеет отношение к Flutter и Dart? На самом деле совсем немного. Ранняя команда Flutter оценила более дюжины языков и выбрала Dart, потому что он соответствовал тому, как они создавали пользовательские интерфейсы.

Dart — главная причина, по которой разработчики любят Flutter.

Читать далее

История Windows CE

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

Microsoft за всё время своего существования неоднократно пыталась выйти на рынок, отличный от компьютерного. И за всё время существования компании накопилось огромное количество проектов, которые сразу оказались неудачными или просуществовали недолго. Исключением стала разве что история с Xbox.

Надо заметить, что были и весьма интересные попытки. Например, с Windows CE. Эта операционная система очень напоминала самое известное творение Microsoft: Windows, но имела свои отличия.  Предполагалось, что на этой мобильной ОС будет работать всё, кроме компьютеров. Windows CE просуществовала довольно долго, но в итоге эта ОС так и не получила широкой известности. Более того, она стала рассматриваться как угроза самой Windows.

Почему? Рассказываем.

Читать далее

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