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

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

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

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

Как Visual Basic.NET отлично помогает решать инженерные задачи, связанные с Word и Excel

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 3.3K
Разработка для Office 365 *Разработка под Windows *Visual Basic for Applications *
Из песочницы

Как язык Visual Basic .NET отлично помогает решать рутинные инженерные задачи, связанные с Word и Excel.

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 50

Новости

ProxiFyre: Open Source SOCKS5 Проксификатор для Windows

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 2.2K
Информационная безопасность *Сетевые технологии *Разработка под Windows *
Туториал

ProxiFyre — это Open Source инструмент, функционирующий как "соксификатор" для приложений, не имеющих встроенной поддержки работы через SOCKS прокси-серверы. Программа является улучшенным вариантом одного из демонстрационных примеров для Windows Packet Filter. В отличие от базовой версии, ProxiFyre обеспечивает поддержку протокола UDP и предлагает функцию одновременного использования нескольких экземпляров SOCKS5 прокси, что существенно расширяет ее функциональные возможности. Приложение в схожем виде существует уже пару лет, но я опубликовал его всего лишь пару недель назад после небольшого ревью. Поводом для публикации стали несколько последовательных запросов на дополнительные функциональные возможности (в частности поддержку UDP), а также скромная надежда на то, что те, кто просит об этих улучшениях, примут посильное участие в дальнейшем развитии проекта.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 3

Что в имени тебе моём? Часть 2

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 693
Совершенный код *Компиляторы *Отладка *Разработка под Windows *

Как известно, интерпретируемые и компилируемые языки имеют преимущества и недостатки относительно друг друга. Одним из таких преимуществ/недостатков является сохранение связи имени переменной из исходного текста с соответствующим объектом программы во время выполнения.

Для интерпретируемых языков эта связь естественным образом сохраняется, так как интерпретатор собственно и «выполняет» исходный текст программы, т.е. имеет к нему непосредственный доступ.

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

Я уже писал заметку об этом и вот решил продолжить тему второй частью. Для тех, кто не любит ходить по ссылкам, кратко напомню, о чем шла речь в первой части.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Комментарии 1

Спустя 28 лет: Windows 11 добавляет поддержку WinRAR. Почему именно сейчас и что будет дальше?

Время на прочтение 3 мин
Количество просмотров 25K
Блог компании Selectel Разработка под Windows *История IT Софт
2bb9062555f5b2bf7e5a5f8d92dfb841ec6919e8-kopiya-1684908523-3

На днях корпорация Microsoft заявила о том, что в скором времени в Windows 11 будет добавлена нативная поддержка архивов RAR, 7-Zip и ряда других популярных форматов. По словам представителей компании, это нововведение позволит пользователям ОС не использовать «сторонние утилиты», включая тот же WinRAR. Но, как всегда, есть нюансы — работа с некоторыми форматами не будет полноценной. Да и внедрение новой функции будет реализовано не так быстро, как хотелось бы. Подробности — под катом.
Читать дальше →
Всего голосов 67: ↑55 и ↓12 +43
Комментарии 97

Истории

Поиск аномалий при запусках процессов Windows с помощью рекомендательных систем

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 1.9K
Блог компании Positive Technologies Информационная безопасность *Машинное обучение *Разработка под Windows *Искусственный интеллект

В SIEM-системах есть множество написанных экспертами правил, которые помогут отследить подозрительное поведение. Однако существует много сценариев атак, которые нельзя описать строгими правилами, а значит, эффективно отслеживать.

Учитывая объем данных, обрабатываемый SIEM-системой ежедневно, а также специфические задачи анализа этих данных (целью которого является поиск действий злоумышленников), применять машинное обучение сегодня необходимо и чрезвычайно эффективно.

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

Далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 3

Приручение WinAPI

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 2.2K
Программирование *Компиляторы *Разработка под Windows *

Позапрошлую заметку я начинал словами «вот уже 10 лет прошло…», а эту можно было бы начать «вот уже 20 лет прошло…». Хотя там речь шла лишь о выравнивании стека, а здесь – о целой организации взаимодействия программы с WinAPI. Помнится, здесь недавно в комментариях кто-то наивно удивлялся: зачем вы приводите устаревший и никому не интересный способ программирования через WinAPI? А как же иначе программа вообще может взаимодействовать со средой Windows, как не через вызовы ее стандартных функций? Через имеющиеся надстройки над WinAPI не все можно сделать.

Конечно, было бы прекрасно все время оставаться в рамках парадигмы используемого языка программирования и чтобы «на фотографии не торчали уши фотографа», т.е. чтобы в исходных текстах никак не проявлялись бы особенности взаимодействия со средой. Например, в большинстве языков есть понятие файла. Чтобы открыть файл не обязательно явно описывать стандартную функцию из WinAPI CreateFile или OpenFile, поскольку компилятор переведет встроенный в язык оператор открытия или прямо к обращению к этой функции или к вызову системной библиотеки, которая где-то внутри себя и вызовет требуемую функцию. В любом случае программист не обязан знать, как именно это реализовано в Windows.

В системной библиотеке языка PL/1-KT, который я использую, имеется обращение лишь к 28 функциям WinAPI и это вполне покрывает «обычные» возможности языка и можно было бы не заботиться о явных вызовах. Но увы, часто этого мало. И хотя нормальные люди ходят в двери, а не в окна (ах, какая свежая, искрометная шутка!), приходится в программах явно обращаться к функциям типа CreateWindow или CloseWindow. А это уже ну никак не входит в понятия языка.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 2

Этот «iPhone» работает на Windows — что может китайский айфон на винде в 2023?

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 15K
Разработка под Windows *Гаджеты Смартфоны
Ретроспектива
image


А вы помните, каким предметом статуса был первый iPhone в своё время? Люди брали ради него кредиты, покупали «серые» аппараты без гарантии, просили друзей купить им яблочный смартфон из США. Конечно, далеко не каждый мог себе позволить оригинальный iPhone в то время, поэтому предприимчивые китайцы начали делать самые разнообразные подделки, которые затем попадали и в СНГ. Айфоны с телевизорами, с 3-симками, с QWERTY-клавиатурами: чего только не придумывал китайский сумрачный гений. Но особенно выделился сегодняшний представитель: это полноценный смартфон на Windows Mobile! Только вдумайтесь — китайцы сделали реплику iPhone на настоящей винде — одним из основных конкурентов iOS тех лет! Сегодня мы с вами: попробуем «отреставрировать» девайс, заменим АКБ, заценим «iOS» и посмотрим, на что годится такой коммуникатор в наше время!
Читать дальше →
Всего голосов 46: ↑43 и ↓3 +40
Комментарии 25

Самые опасные драйверы для Windows

Время на прочтение 10 мин
Количество просмотров 7.4K
Блог компании GlobalSign Информационная безопасность *Антивирусная защита *Разработка под Windows *


Драйверы — неотъемлемая часть операционной системы, но связанные с ними уязвимости часто недооцениваются. Windows очень легко загружает на уровень ядра практически любые драйверы: подписанные/неподписанные, старые/новые. Если вредоносный код распространяется таким образом, то его трудно обнаружить.

Старые 32-битные драйверы обычно шли без цифровой подписи. Но даже введение обязательной подписи не решило проблему полностью. Во-первых, злоумышленники могут использовать украденные сертификаты. Во-вторых, они используют для своих целей официально сертифицированные драйверы от доверенных издателей: Lenovo, ASRock, Asustek, Dell и др. Такие «троянские» драйверы присутствуют на многих компьютерах, но антивирусы не считают их угрозой.
Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 2

Microsoft переписывает код ядра и некоторых библиотек Windows на языке Rust. Но зачем?

Время на прочтение 4 мин
Количество просмотров 42K
Блог компании Selectel Rust *Разработка под Windows *Софт
microsoft-is-rewriting-core-windows-libraries-in-rust-v0-Nsy2e3-Z9k4-XXJv-6k-XV9d4a-Mmj-VKb-Th-Cj-Sh

Недавно стало известно о том, что команда разработчиков Windows 11 занимается новым типом работы — переписывает ряд модулей ядра и системных библиотек операционной системы на Rust. При этом работа уже в разгаре, это не просто анонс проекта или планы на будущее — реализация идет полным ходом. Зачем корпорации все это понадобилось?
Читать дальше →
Всего голосов 108: ↑104 и ↓4 +100
Комментарии 226

Как за полчаса написать простую читалку книг FB2 для десктопа на Java

Уровень сложности Простой
Время на прочтение 13 мин
Количество просмотров 13K
Программирование *Java *Разработка под Windows *
Из песочницы

Недавно мне для личных целей понадобилось написать читалку FB2. И сразу я столкнулась с тем, что информации по теме минимум. Палочка-выручалочка под названием ChatGPT выдал что-то невразумительное в ответ на довольно подробный запрос. К тому же, никаких готовых библиотек, чтобы по-быстренькому наваять ридер, я также не смогла обнаружить. Хотя искала долго и упорно, как Чубакка расческу.

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

А раз все так просто, зачем я пишу эту статью? Для этого у меня есть две причины. Во-первых, это моя первая проба пера на Хабре. А во-вторых, возможно, это сэкономит кучу времени другому такому же новичку, как я. Ну, или пригодится какому-нибудь студенту, который пишет реферат.

Читать далее
Всего голосов 23: ↑18 и ↓5 +13
Комментарии 70

Странный мир путей файлов в Windows

Время на прочтение 6 мин
Количество просмотров 48K
Разработка под Windows *
Перевод

Пути файловых систем в Windows страннее, чем можно подумать. В любой производной от Unix системе пути на удивление просты: если нечто начинается с /, то это путь. Но всё совершенно иначе в Windows, которая имеет озадачивающее разнообразие схем составления пути.

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

Стоит заметить, что статья ограничивается только тем типом путей, который видит пользователь приложений Windows (обусловленный Win32 API). Под этим слоем есть ещё больше любопытного, в основном касающегося тех, кто пишет драйверы оборудования и тому подобное.
Читать дальше →
Всего голосов 179: ↑179 и ↓0 +179
Комментарии 100

Обучение C++, UTF-8 с первой программы

Уровень сложности Средний
Время на прочтение 13 мин
Количество просмотров 10K
Программирование *C++ *Учебный процесс в IT Разработка под Windows *
Туториал

Мне понадобилось провести несколько вводных уроков по языку программирования C++. В интернете есть много разнообразных учебных пособий для начинающих. Но почти во всех из них символьные и строковые литералы в примерах и упражнениях даются на английском языке, начиная со знаменитой первой программы «Hello, world!».

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

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

Читать далее
Всего голосов 18: ↑13 и ↓5 +8
Комментарии 49

10 болей Windows-разработчика, портирующего на Linux

Время на прочтение 9 мин
Количество просмотров 6.2K
Блог компании Content AI Разработка под Linux *Разработка под Windows *
Мнение

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

Споры о том, под какой ОС проще кодить – бесконечны, примерно как дискуссии об Android vs iOS или PlayStation vs Xbox. Поэтому начинать мы ее не будем, хотя очень хочется.

В посте рассказываем исключительно об опыте нашей компании: на какие грабли наступили и в каких местах обожглись, работая над портированием продуктов с Windows на Linux. И все это собрали в 10 основных пунктов-болей наших разработчиков под катом. 

Читать далее
Всего голосов 14: ↑10 и ↓4 +6
Комментарии 17

Дорожная карта навыков разработчика на C++

Уровень сложности Средний
Время на прочтение 16 мин
Количество просмотров 38K
Блог компании «Лаборатория Касперского» C++ *Разработка под MacOS *Разработка под Linux *Карьера в IT-индустрии Разработка под Windows *
Роадмэп
Спецпроект

Джеймс Гослинг как-то сказал, что Java — это C++, из которого убрали все пистолеты, ножи и дубинки, однако практика показывает, что «ножи и дубинки» становятся классным инструментом в руках опытных разработчиков. В общем, немалая часть проклятий в адрес C++ объясняется элементарным «вы просто не умеете его готовить». Мы в «Лаборатории Касперского» умеем готовить «плюсы» и поэтому любим их. C++ — низкоуровневый язык, который позволяет работать с железом и писать быстрый код и при этом содержит массу возможностей. В экосистеме «плюсов» куча проработанных паттернов, best practices и готовых библиотек под разные задачи. Язык динамично развивается — но сохраняет обратную совместимость. 

В этом посте мы с помощью карты покажем, какие навыки и знания нужны разработчику на C++. Естественно, разбирать путь развития «плюсистов» будем на собственном примере — тем более что у нас в «Лаборатории Касперского» много очень разных проектов с отличающимися задачами. Однако наша карта по большей части универсальна и будет полезна всем, кто хочет развиваться в С++-разработке.

Отправляемся
Всего голосов 46: ↑38 и ↓8 +30
Комментарии 95

Руководство по Кросс-Платформенному Системному Программированию для UNIX и Windows: Уровень 1

Время на прочтение 68 мин
Количество просмотров 6K
Программирование *Системное программирование *Разработка под Linux *Разработка под Windows *
Туториал

С помощью этого учебного материала мы научимся писать кросс-платформенный код на Си, используя системные функции популярных ОС (Windows, Linux/Android, macOS и FreeBSD): управление файлами и файловый I/O, консольный I/O, пайпы (неименованные), запуск новых процессов. Мы напишем свои небольшие вспомогательные функции поверх низкоуровневого системного АПИ (API), для того чтобы наш основной код, используя эти функции, мог работать на любой ОС без изменений. Этот учебный материал — начального уровня. Я делю сложные вещи на части, чтобы примеры кода здесь не были слишком заумными для тех, кто только что начал программировать на Си. Мы обсудим различия между системными АПИ и разберёмся, как создать кросс-платформенный программный интерфейс, который скрывает все эти различия от пользователя этого интерфейса.

Читать далее
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 27

Удивительное рядом. Как устроен буфер обмена в Windows и Linux

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 19K
Блог компании RUVDS.com Системное программирование *Разработка под Linux *Разработка под Windows *Софт
Опенсорсная утилита CopyQ показывает содержимое буфера обмена на всех ОС и сохраняет историю

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

В некоторых случаях данные вообще нигде не сохраняются по нажатию Ctrl+C. И по нажатию Ctrl+V будет возвращён NULL. Shit happens, как говорится…
Читать дальше →
Всего голосов 71: ↑70 и ↓1 +69
Комментарии 19

Новые утечки. Что мы знаем о выходе Windows 12

Время на прочтение 5 мин
Количество просмотров 27K
Блог компании getmatch Разработка под Windows *Софт Искусственный интеллект


Весь интернет уже готовится к выходу Windows 12. Вероятно, следующая версия будет во многом сосредоточена на поддержке работы с ИИ. На это намекает в том числе недавняя утечка от Intel, а также последние действия AMD и направление развития Bing.

Читать дальше →
Всего голосов 24: ↑21 и ↓3 +18
Комментарии 117

Компилируем быстрые консольные .exe приложения на PHP 8.1 в 2023 году, а почему бы и нет? (upd)

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 5.2K
Блог компании Timeweb Cloud PHP *C++ *Разработка под Windows *
Туториал
С каждым релизом PHP становится всё быстрее, а при включении JIT (Just-In-Time) компиляции, достигает почти отметок того же C.

image

У многих в своё время, наверное, было желание легкого написание консольных и оконных приложений. Ребята рунета иногда писали незаменимые приложения для решения мелких задач и делились на форумах, хотя некоторые из них и содержали костыли.

Однако времена меняются, и люди начали осознавать свои ошибки, переходя, скажем, на ООП.

Чтобы поностальгировать и продемонстрировать нового Франкенштейна, мы соберем полноценное консольное exe-приложение на PHP.
Читать дальше →
Всего голосов 35: ↑31 и ↓4 +27
Комментарии 21

Avalonia и котики и дизайн для разработчика

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 2.1K
.NET *C# *Разработка под MacOS *Разработка под Linux *Разработка под Windows *

В эпоху невероятной популярности ChatGPT и OpentAI все кинулись играть с их инструментами и использовать API в своих продуктах. Я был в общих рядах и сделал продукт для тех, кому затруднительно воспользоваться официальным сайтом ChatGPT. Но в этой статье речь пойдет не о восхитительных продуктах MS, а о создании интерфейса с котиками на основе этого продукта.

Итак, у нас стоит задача: создать десктопный чат с GTP3, которым будет удобно пользоваться человеку, далекому от пк.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 1

Сканер установленных перехватчиков в памяти процесса

Время на прочтение 98 мин
Количество просмотров 7.4K
Информационная безопасность *Assembler *Delphi *Разработка под Windows *


В статье будет рассмотрен один из методов поиска изменений в памяти процесса, на основе построения полной карты уязвимых к перехвату адресов. Рассмотрена работа со списками загрузчика, ручным разбором таблиц импорта/отложенного импорта/экспорта/TLS загруженных файлов, c обработкой форварда функций и ApiSet редиректов.
Будет показана методика доступа в 64 битное адресное пространство чужого процесса из 32 битного кода через статически сформированный ассемблерный шлюз, так и подход с применением автоматически генерируемого гейта.
Будет дано много комментариев «почему» применяется тот или иной подход, а также описание различных проблемных ситуаций, основанных в том числе как на собственном опыте, так и на разборе кода системного загрузчика, поэтому будет интересна и подготовленным специалистам.
Читать дальше →
Всего голосов 54: ↑54 и ↓0 +54
Комментарии 24

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

Работа