Статьи с тегом «Windows»
Статьи с тегом «Windows» (47 шт.), от новых к старым.
-
Обработка ошибок и повторные попытки в PowerShell — от ловушки нерабочего try/catch до exit code и типовых схем повтора
Разбираем на практике различия между завершающими и незавершающими ошибками в PowerShell, ловушку неработающего try/catch и приём -ErrorAction Stop, определе...
-
Политика выполнения PowerShell и подпись скриптов — практическое руководство, как перестать «затыкать дыры» параметром Bypass
Политика выполнения PowerShell — это «не граница безопасности, а защитный механизм». Разбираем различия между RemoteSigned и другими политиками, приоритет об...
-
Как понимать изоляцию сеансов Windows — Session 0, RDP и одновременная работа нескольких пользователей
В этой статье разбирается понятие «сеанса» (session) в Windows — тема, которая постоянно сбивает с толку разработчиков Windows-приложений. Рассматривается, п...
-
Защита от повторного запуска приложения Windows — именованный Mutex и активация окна при повторном запуске
Разбираем, как реализовать защиту бизнес-приложения Windows от повторного запуска с помощью именованного Mutex: подводные камни RDP-окружений из-за различий ...
-
Встраиваем аутентификацию Entra ID в приложения WinForms/WPF — практическая архитектура на MSAL.NET и брокере WAM
Разбираем порядок встраивания аутентификации Entra ID в десктопные приложения WinForms/WPF: концепцию публичного клиента, регистрацию приложения, паттерн Acq...
-
Дата, время и часовые пояса в бизнес-приложениях — от ловушек DateTime до принципа хранения в UTC и проектирования тестов
Перенос сервера сдвигает время на 9 часов — разбираем причины подобных сбоев начиная со свойства Kind у DateTime и неявных преобразований. Рассматриваем выбо...
-
Автоматическое UI-тестирование десктопных приложений Windows — как устроен UI Automation и как строить устойчивые тесты на FlaUI
Разбираем автоматическое UI-тестирование WinForms/WPF-приложений от основ Windows UI Automation. Минимальная реализация на FlaUI, проектирование AutomationId...
-
Высокий DPI в WPF — почему всё «должно быть само в порядке», а на деле размывается и плывёт, и что с этим делать
WPF по умолчанию System DPI Aware, но при переносе окна на монитор с другим DPI всё изображение размывается, а растровые картинки становятся нечёткими. Разби...
-
Поддержка высокого DPI в WinForms — почему интерфейс размывается или разваливается на 4K-мониторах, и как это исправить
Разбираем причины размытия и поломки интерфейса WinForms-приложений на 4K-мониторах через DPI-виртуализацию и режимы DPI-осведомлённости (System Aware / Per-...
-
Как выбрать межпроцессное взаимодействие в Windows — таблица решений: именованные каналы / TCP / gRPC / разделяемая память / COM
Разбираем, как выбрать способ взаимодействия Windows-приложений друг с другом: сильные стороны и ловушки именованных каналов, локального TCP, gRPC, разделяем...
-
SQLite в бизнес-приложениях на C# — режим WAL, эксклюзивная блокировка, защита от повреждений и выбор между EF Core и голым ADO.NET
Разбираем практические знания по внедрению SQLite в бизнес-приложение через Microsoft.Data.Sqlite: режим WAL, SQLITE_BUSY и консолидацию записи, ловушки сопо...
-
Как создавать и эксплуатировать службы Windows — от выбора между планировщиком заданий и службами до превращения BackgroundService в службу Windows
Разбираем, стоит ли превращать резидентную обработку в службу Windows или достаточно планировщика заданий: таблица решений, создание службы на основе .NET Wo...
-
После IE-режима — WebView2? Ограничение по ActiveX и реалистичный план миграции
Разбираем базовую архитектуру WebView2, стратегии распространения Evergreen и Fixed Version, ловушку с папкой пользовательских данных, способы связи нативног...
-
Как выбрать место хранения данных Windows-приложения — таблица решений для SQLite / JSON / реестра / Access
Где и в каком формате хранить данные Windows-приложения. Разбираем выбор между AppData и ProgramData, а также сильные стороны и подводные камни SQLite, JSON-...
-
Задачи планировщика заданий Windows не запускаются или завершаются с 0x1 — диагностика причин и проектирование надёжного выполнения по расписанию
Разбираем принципы проектирования надёжного выполнения задач по расписанию в Windows: учётные записи выполнения и типы входа в систему, типичные причины заве...
-
Что такое MFC в Windows: основы для сопровождения существующих приложений
Разбираем обзор Microsoft Foundation Classes (MFC): связь с Win32, структуру приложения, карты сообщений, архитектуру Document/View, DDX/DDV и нюансы, важные...
-
Что сделать перед утилизацией Windows PC — практический чек-лист по стиранию данных, отвязке учётных записей и резервному копированию
Разбираем, что нужно сделать перед утилизацией, передачей, продажей или возвратом по лизингу Windows PC: резервное копирование, стирание данных, BitLocker, у...
-
Аутсорсинг и контрактная разработка Windows-приложения: что стоит прояснить перед заказом
Перед тем как заказать аутсорсинг или контрактную разработку Windows-приложения, разберём, что нужно прояснить: доработка существующего ПО, интеграция с обор...
-
Как правильно работать с токенами олицетворения в Windows — заимствование прав на уровне потока и безопасный откат
Разбираем токены олицетворения в Windows — токены доступа, первичные и потоковые токены, уровни олицетворения, RevertToSelf и WindowsIdentity.RunImpersonated...
-
Как запустить PowerShell из C# (CSharp) и получить результат в виде объектов
Разбираем, как запустить PowerShell из C# и получать результаты не строками, а объектами PSObject, — от PowerShell SDK, AddCommand и AddParameter до BaseObje...
-
Тестирование PowerShell с помощью Pester — практический подход к тому, чтобы эксплуатационные скрипты было труднее сломать
Практическое руководство по тестированию PowerShell-скриптов с помощью Pester v5: безопасное покрытие обработки дат, файловых операций, логики удаления, моко...
-
Почему Windows стала такой, какая она есть: эволюция Windows глазами разработчика
Разбираем изменения от Windows 95 до Windows 11 не как визуальную хронологию, а с точки зрения разработчика Windows-приложений: совместимость, стабильность, ...
-
Введение в настройку CPU для разработчиков Windows-приложений: приоритет, привязка к ядрам и P-ядра/E-ядра
Для разработчиков Windows-приложений разбираем взаимосвязь приоритета CPU, привязки к ядрам (affinity), P-ядер/E-ядер, настроек энергосбережения и EcoQoS/Eff...
-
Странная любовь разработчика, или Как я перестал беспокоиться и полюбил Windows
Windows — это хлопотно. Но эти хлопоты — от того, что данная ОС десятилетиями несла на себе реальный бизнес.
-
Практические команды PowerShell — расширяем набор маленьких инструментов для повседневной работы
Практическая подборка команд PowerShell для повседневной работы: разбираем, где применять Measure-Object, Group-Object, Select-String, Compare-Object, Tee-Ob...
-
Прикладной PowerShell — безопасная автоматизация анализа логов, архивирования и отчётности
Разбираем практические шаги безопасной автоматизации PowerShell-скриптами: анализ логов, CSV-отчёты, архивирование старых логов, сохранение аудиторского след...
-
Основы команд PowerShell — операции, которые стоит выучить первыми, и как использовать их безопасно
Чтобы новички в PowerShell не терялись в реальной работе, разбираем поиск командлетов, конвейер, операции с файлами, обработку CSV, политику выполнения и пор...
-
Почему Windows показывает сообщение «Windows защитил ваш компьютер»
Разбираем с практической точки зрения, почему при распространении Windows-приложений появляется предупреждение SmartScreen: подпись кода, сертификаты EV/OV, ...
-
Как избавиться от зависимости внутренних веб-систем от режима IE
Практические шаги по безопасному продлению жизни внутренних веб-систем, зависящих от режима IE в Microsoft Edge, при одновременном избавлении от этой зависим...
-
Office 2024/Microsoft 365: почему не работает ActiveX и как это диагностировать
Разбираем порядок диагностики, когда ActiveX не работает в Office 2024/Microsoft 365: отключение по умолчанию, несовпадение 32-бит/64-бит, регистрация COM, з...
-
Гид по подготовке VBA и внутренних инструментов к отказу от VBScript
Готовимся к поэтапному отказу от VBScript: разбираем инвентаризацию VBA, макросов Excel и внутренних инструментов, статическое обнаружение, сбор логов выполн...
-
Что такое GCPW — вход в Windows через аутентификацию Google
Разбираем принцип работы Google Credential Provider for Windows (GCPW): совместное использование с Windows device management, работу с существующими профилям...
-
Кодировки текста и символы перевода строки в Windows — основы искажения кодировки и CRLF/LF
Разбираем часто путаемые в Windows Shift_JIS / UTF-8 / UTF-16, причины возникновения искажения кодировки и разницу между CRLF и LF в удобном для практических...
-
Что такое ClickOnce - механизм работы, обновления и случаи применения с практической точки зрения
Разбираем ClickOnce - технологию распространения .NET-приложений для Windows: манифесты, обновления, кэш, подпись, а также случаи, где он подходит и где нет,...
-
Как ускорить проверку приложений с помощью Windows Sandbox
Разбираем, как использовать Windows Sandbox для эффективной локализации проблем с правами администратора, воспроизведения сценариев в чистом окружении и имит...
-
Как работает разрешение имён DLL в Windows — порядок поиска и SxS
Разбираем разрешение имён DLL в Windows с практической точки зрения: DLL search order, Known DLLs, loaded-module list, API set, SxS manifest и влияние API се...
-
Когда на Windows действительно требуются права администратора — UAC, защищённые области и как это определить на этапе проектирования
Разбираем на практических примерах, когда в Windows требуются права администратора — с точки зрения UAC, защищённых областей, служб, драйверов и проектирован...
-
Введение в кодировки текста в Windows — искажение кодировки (mojibake), возникающее при интеграции с Linux
Разбираем практические причины искажения кодировки в Windows — через различия между CP932, UTF-8, UTF-16, BOM, кодовыми страницами, PowerShell и локалями Linux.
-
Лучшие практики проверки и отображения состояния внешних устройств — проектирование за пределами одного «подключено»
В приложениях, работающих с внешними устройствами, сведение состояния к одному «подключено» приводит к вводящим в заблуждение подсказкам. Разбираем обнаружен...
-
Чек-лист безопасной работы с дочерними процессами в Windows-приложении
Для безопасной работы с дочерними процессами в Windows-приложении важнее не API запуска, а то, кто владеет деревом процессов, и как спроектирована процедура ...
-
Как выбрать способ распространения Windows-приложения — MSI/MSIX/ClickOnce/xcopy/собственный updater
Способ распространения Windows-приложения — это не вопрос вкуса в выборе формата установщика, а выбор степени связанности с ОС и ответственности за обновлени...
-
Распространение Windows-приложения одним файлом — единый бинарный файл и пределы зависимости от ОС
Когда хочется свести Windows-приложение к одному EXE, важно различать «сделать один файл распространения» и «избавиться от зависимости от ОС». Разбираем этот...
-
Правила промптинга, которые снижают число сбоев кодировки текста у Codex в Windows
Разбираем практические правила промптинга для работы Codex с японоязычными файлами в Windows: как не давать сохранять файл «на угадай», сохранять исходную ко...
-
Введение в пользовательские профили Windows - AppData и NTUSER.DAT
Разбираем основы пользовательских профилей Windows: разграничение AppData, локальный / роуминговый / Mandatory / Temporary профили, Folder Redirection, FSLog...
-
Настройка планирования процессора в Windows — фоновые службы и P/E-ядра
Разбираемся, что на самом деле меняет настройка «Фоновые службы» в Windows — через призму кванта времени, приоритета foreground-процессов, треска в аудио и Q...
-
Как правильно сравнивать скорость разных версий программы в Windows
Разбираем методику сравнения версий программ в Windows с высокой воспроизводимостью результатов — от power mode и power plan до тепловых эффектов, фоновых шу...
-
Расширенные настройки Windows NIC — RSS/LSO/EEE/Wake on LAN
Практический разбор расширенных настроек NIC в Windows: что меняется при настройке Jumbo Packet, Speed & Duplex, RSS, RSC, LSO, Flow Control, EEE, Wake on LA...