#winapi — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #winapi, aggregated by home.social.
-
Плоть слаба: как я писал свой Wine для браузера
Каждый год на новогодних каникулах у меня просыпается ностальгия, хочется перепройти что‑то из детства, типа «Harry Potter and the Philosopher’s Stone» от KnowWonder. И если с консольными играми всё просто (эмуляторы типа DuckStation или PCSX2 работают идеально), то с PC‑играми 32-битной эры всё сложно, особенно на Mac. Часто пока ты добьешься запуска игры, уже пропадает всякое желание ее проходить. В этот раз я решил проблему радикально: написал свою «Windows». В браузере. На TypeScript. Усаживайтесь поудобнее, я расскажу вам, как я полгода дебажил чужие игры двадцатилетней давности и почему на это подсел.
https://habr.com/ru/articles/1060010/
#эмуляция #wine #winapi #x86 #webgpu #webassembly #ретроигры #ретрогейминг #directx #direct3d
-
Плоть слаба: как я писал свой Wine для браузера
Каждый год на новогодних каникулах у меня просыпается ностальгия, хочется перепройти что‑то из детства, типа «Harry Potter and the Philosopher’s Stone» от KnowWonder. И если с консольными играми всё просто (эмуляторы типа DuckStation или PCSX2 работают идеально), то с PC‑играми 32-битной эры всё сложно, особенно на Mac. Часто пока ты добьешься запуска игры, уже пропадает всякое желание ее проходить. В этот раз я решил проблему радикально: написал свою «Windows». В браузере. На TypeScript. Усаживайтесь поудобнее, я расскажу вам, как я полгода дебажил чужие игры двадцатилетней давности и почему на это подсел.
https://habr.com/ru/articles/1060010/
#эмуляция #wine #winapi #x86 #webgpu #webassembly #ретроигры #ретрогейминг #directx #direct3d
-
Плоть слаба: как я писал свой Wine для браузера
Каждый год на новогодних каникулах у меня просыпается ностальгия, хочется перепройти что‑то из детства, типа «Harry Potter and the Philosopher’s Stone» от KnowWonder. И если с консольными играми всё просто (эмуляторы типа DuckStation или PCSX2 работают идеально), то с PC‑играми 32-битной эры всё сложно, особенно на Mac. Часто пока ты добьешься запуска игры, уже пропадает всякое желание ее проходить. В этот раз я решил проблему радикально: написал свою «Windows». В браузере. На TypeScript. Усаживайтесь поудобнее, я расскажу вам, как я полгода дебажил чужие игры двадцатилетней давности и почему на это подсел.
https://habr.com/ru/articles/1060010/
#эмуляция #wine #winapi #x86 #webgpu #webassembly #ретроигры #ретрогейминг #directx #direct3d
-
О разработке прототипа эмулятора WIE: запуск Windows PE64 бинарников на Apple Silicon
WIE — это исследовательский эмулятор пользовательского режима (userspace) для запуска 64-битных Windows-приложений (PE64) на архитектуре macOS Apple Silicon. Проект написан на Rust 1.97, а в качестве бэкенда компиляции используется Cranelift для трансляции x86-64 инструкций на лету в нативный ARM64.
-
О разработке прототипа эмулятора WIE: запуск Windows PE64 бинарников на Apple Silicon
WIE — это исследовательский эмулятор пользовательского режима (userspace) для запуска 64-битных Windows-приложений (PE64) на архитектуре macOS Apple Silicon. Проект написан на Rust 1.97, а в качестве бэкенда компиляции используется Cranelift для трансляции x86-64 инструкций на лету в нативный ARM64.
-
О разработке прототипа эмулятора WIE: запуск Windows PE64 бинарников на Apple Silicon
WIE — это исследовательский эмулятор пользовательского режима (userspace) для запуска 64-битных Windows-приложений (PE64) на архитектуре macOS Apple Silicon. Проект написан на Rust 1.97, а в качестве бэкенда компиляции используется Cranelift для трансляции x86-64 инструкций на лету в нативный ARM64.
-
От идеи до рабочего приложения: создание ProcessTimeWatcher на C# и WPF
Сколько времени на самом деле мы проводим в разных приложениях? Кажется, что открыл IDE на пару минут, проверил браузер — и вернулся к работе. Но спустя несколько часов становится сложно понять, куда ушло это время. Существующие трекеры активности уже давно решают эту задачу, но мне было интересно разобраться, как они работают внутри: как Windows определяет активное окно, как получить информацию о процессе и как правильно считать время использования приложения. Так появился ProcessTimeWatcher — WPF-приложение на C#, которое отслеживает активное окно пользователя и собирает статистику использования программ. В статье разберём, как устроен этот инструмент, какие сложности возникли при работе с Windows API и какие решения были приняты во время разработки.
https://habr.com/ru/articles/1059148/
#C# #wpf #net #windows_api #winapi #open_source #procces_monitoring #xaml #tracker #time_tracker
-
От идеи до рабочего приложения: создание ProcessTimeWatcher на C# и WPF
Сколько времени на самом деле мы проводим в разных приложениях? Кажется, что открыл IDE на пару минут, проверил браузер — и вернулся к работе. Но спустя несколько часов становится сложно понять, куда ушло это время. Существующие трекеры активности уже давно решают эту задачу, но мне было интересно разобраться, как они работают внутри: как Windows определяет активное окно, как получить информацию о процессе и как правильно считать время использования приложения. Так появился ProcessTimeWatcher — WPF-приложение на C#, которое отслеживает активное окно пользователя и собирает статистику использования программ. В статье разберём, как устроен этот инструмент, какие сложности возникли при работе с Windows API и какие решения были приняты во время разработки.
https://habr.com/ru/articles/1059148/
#C# #wpf #net #windows_api #winapi #open_source #procces_monitoring #xaml #tracker #time_tracker
-
От идеи до рабочего приложения: создание ProcessTimeWatcher на C# и WPF
Сколько времени на самом деле мы проводим в разных приложениях? Кажется, что открыл IDE на пару минут, проверил браузер — и вернулся к работе. Но спустя несколько часов становится сложно понять, куда ушло это время. Существующие трекеры активности уже давно решают эту задачу, но мне было интересно разобраться, как они работают внутри: как Windows определяет активное окно, как получить информацию о процессе и как правильно считать время использования приложения. Так появился ProcessTimeWatcher — WPF-приложение на C#, которое отслеживает активное окно пользователя и собирает статистику использования программ. В статье разберём, как устроен этот инструмент, какие сложности возникли при работе с Windows API и какие решения были приняты во время разработки.
https://habr.com/ru/articles/1059148/
#C# #wpf #net #windows_api #winapi #open_source #procces_monitoring #xaml #tracker #time_tracker
-
Windows 1.0 and the WinAPI, 40 Years Later
https://medium.com/@stassaf.uae/windows-1-0-and-the-winapi-40-years-later-abaf64832918
#HackerNews #Windows10 #WinAPI #RetroComputing #TechHistory #SoftwareDevelopment
-
Windows 1.0 and the WinAPI, 40 Years Later
https://medium.com/@stassaf.uae/windows-1-0-and-the-winapi-40-years-later-abaf64832918
#HackerNews #Windows10 #WinAPI #RetroComputing #TechHistory #SoftwareDevelopment
-
Windows 1.0 and the WinAPI, 40 Years Later
https://medium.com/@stassaf.uae/windows-1-0-and-the-winapi-40-years-later-abaf64832918
#HackerNews #Windows10 #WinAPI #RetroComputing #TechHistory #SoftwareDevelopment
-
Windows 1.0 and the WinAPI, 40 Years Later
https://medium.com/@stassaf.uae/windows-1-0-and-the-winapi-40-years-later-abaf64832918
#HackerNews #Windows10 #WinAPI #RetroComputing #TechHistory #SoftwareDevelopment
-
Windows 1.0 and the WinAPI, 40 Years Later
https://medium.com/@stassaf.uae/windows-1-0-and-the-winapi-40-years-later-abaf64832918
#HackerNews #Windows10 #WinAPI #RetroComputing #TechHistory #SoftwareDevelopment
-
Украсть пиксели и не задохнуться в сетевом канале. Протокол SPICE в современном графическом стеке, часть 3
Мы продолжаем увлекательное путешествие по миру удалённого доступа . Это третья часть цикла про протокол доставки рабочего стола SPICE и то, как он вынужден работать в современных условиях. Наша конечная цель - создать пилот стримингового агента для виртуальной машины на ОС Windows. В предыдущих двух частях рассматривали архитектуры самого протокола и графической подсистемы Windows, а сегодня мы готовим плацдарм в вопросах захвата экрана в Windows и сжатия видео средствами различных библиотек, фреймворков и API. С кодом и компактными пояснениями. Данная статья является своего рода пособием по написанию Remote Desktop драйвера. Приглашаю под кат всех любознательных - в особенности тех, кто сталкивается с Windows не только как пользователь; с решениями для удалённого доступа; с протоколом SPICE; с системами виртуализации и виртуальными машинами в принципе. К технологиям доставки рабочего стола
https://habr.com/ru/articles/1041606/
#spice #windows #winapi #directx #video_streaming #realtime #screencast #remote_desktop #gpu
-
Украсть пиксели и не задохнуться в сетевом канале. Протокол SPICE в современном графическом стеке, часть 3
Мы продолжаем увлекательное путешествие по миру удалённого доступа . Это третья часть цикла про протокол доставки рабочего стола SPICE и то, как он вынужден работать в современных условиях. Наша конечная цель - создать пилот стримингового агента для виртуальной машины на ОС Windows. В предыдущих двух частях рассматривали архитектуры самого протокола и графической подсистемы Windows, а сегодня мы готовим плацдарм в вопросах захвата экрана в Windows и сжатия видео средствами различных библиотек, фреймворков и API. С кодом и компактными пояснениями. Данная статья является своего рода пособием по написанию Remote Desktop драйвера. Приглашаю под кат всех любознательных - в особенности тех, кто сталкивается с Windows не только как пользователь; с решениями для удалённого доступа; с протоколом SPICE; с системами виртуализации и виртуальными машинами в принципе. К технологиям доставки рабочего стола
https://habr.com/ru/articles/1041606/
#spice #windows #winapi #directx #video_streaming #realtime #screencast #remote_desktop #gpu
-
Украсть пиксели и не задохнуться в сетевом канале. Протокол SPICE в современном графическом стеке, часть 3
Мы продолжаем увлекательное путешествие по миру удалённого доступа . Это третья часть цикла про протокол доставки рабочего стола SPICE и то, как он вынужден работать в современных условиях. Наша конечная цель - создать пилот стримингового агента для виртуальной машины на ОС Windows. В предыдущих двух частях рассматривали архитектуры самого протокола и графической подсистемы Windows, а сегодня мы готовим плацдарм в вопросах захвата экрана в Windows и сжатия видео средствами различных библиотек, фреймворков и API. С кодом и компактными пояснениями. Данная статья является своего рода пособием по написанию Remote Desktop драйвера. Приглашаю под кат всех любознательных - в особенности тех, кто сталкивается с Windows не только как пользователь; с решениями для удалённого доступа; с протоколом SPICE; с системами виртуализации и виртуальными машинами в принципе. К технологиям доставки рабочего стола
https://habr.com/ru/articles/1041606/
#spice #windows #winapi #directx #video_streaming #realtime #screencast #remote_desktop #gpu
-
Как я автоматизировал UI в Windows: UIAutomation и Win32
Привет, меня зовут Алексей, я C# разработчик. Я разрабатывал библиотеку для автоматизации взаимодействия с различными UI-элементами и их захвата. Одной из поддерживаемых сред в такой библиотеке обязательно должна быть Windows и в ней так же требуется: находить кнопки, поля, окна, списки, нажимать на них, читать значения, вводить текст и в целом обращаться с интерфейсом не как пользователь с мышкой, а как программа. На первый взгляд задача звучит просто: нашли элемент, кликнули, пошли дальше. Но в реальных приложениях у элемента может не быть (считай не будет) нормального AutomationId , у нескольких окон может быть один и тот же заголовок, дерево интерфейса может прогружаться не сразу, а старое desktop-приложение вообще не предназначено для взаимодействия с современными API для автоматизации. В итоге в моей библиотеке появилось два основных Windows-подхода:
https://habr.com/ru/articles/1035292/
#automation #ui_testing #ui_automation #winapi #win32 #тестирование #автоматизация #автоматизация_тестирования #интерфейсы #автоматизация_бизнеспроцессов
-
Как я автоматизировал UI в Windows: UIAutomation и Win32
Привет, меня зовут Алексей, я C# разработчик. Я разрабатывал библиотеку для автоматизации взаимодействия с различными UI-элементами и их захвата. Одной из поддерживаемых сред в такой библиотеке обязательно должна быть Windows и в ней так же требуется: находить кнопки, поля, окна, списки, нажимать на них, читать значения, вводить текст и в целом обращаться с интерфейсом не как пользователь с мышкой, а как программа. На первый взгляд задача звучит просто: нашли элемент, кликнули, пошли дальше. Но в реальных приложениях у элемента может не быть (считай не будет) нормального AutomationId , у нескольких окон может быть один и тот же заголовок, дерево интерфейса может прогружаться не сразу, а старое desktop-приложение вообще не предназначено для взаимодействия с современными API для автоматизации. В итоге в моей библиотеке появилось два основных Windows-подхода:
https://habr.com/ru/articles/1035292/
#automation #ui_testing #ui_automation #winapi #win32 #тестирование #автоматизация #автоматизация_тестирования #интерфейсы #автоматизация_бизнеспроцессов
-
Как я автоматизировал UI в Windows: UIAutomation и Win32
Привет, меня зовут Алексей, я C# разработчик. Я разрабатывал библиотеку для автоматизации взаимодействия с различными UI-элементами и их захвата. Одной из поддерживаемых сред в такой библиотеке обязательно должна быть Windows и в ней так же требуется: находить кнопки, поля, окна, списки, нажимать на них, читать значения, вводить текст и в целом обращаться с интерфейсом не как пользователь с мышкой, а как программа. На первый взгляд задача звучит просто: нашли элемент, кликнули, пошли дальше. Но в реальных приложениях у элемента может не быть (считай не будет) нормального AutomationId , у нескольких окон может быть один и тот же заголовок, дерево интерфейса может прогружаться не сразу, а старое desktop-приложение вообще не предназначено для взаимодействия с современными API для автоматизации. В итоге в моей библиотеке появилось два основных Windows-подхода:
https://habr.com/ru/articles/1035292/
#automation #ui_testing #ui_automation #winapi #win32 #тестирование #автоматизация #автоматизация_тестирования #интерфейсы #автоматизация_бизнеспроцессов
-
Препарируем графическую подсистему Windows. Протокол SPICE в современном графическом стеке, часть 2
Мы продолжаем увлекательное путешествие по миру удалённого доступа . В предыдущей части заглядывали под капот протокола доставки рабочего стола SPICE , а сейчас на операционный стол попала великая и ужасная ОС Windows - точнее, её графическая подсистема. Заглянем в её недры и окунёмся в её философию и историю развития. И заодно найдём интересные параллели в Linux . Это вторая часть цикла про протокол SPICE и то, как он вынужден работать в современных условиях. Наша конечная цель - создать пилот стримингового агента для виртуальной машины на ОС Windows . Приглашаю под кат всех, кто работает или сталкивается с системами виртуализации, с протоколом SPICE, с виртуальными машинами в принципе; кто интересуется такими темами как удалённый доступ и компьютерная графика; да и вообще всех любознательных! В бездну виндового угнетения
-
Препарируем графическую подсистему Windows. Протокол SPICE в современном графическом стеке, часть 2
Мы продолжаем увлекательное путешествие по миру удалённого доступа . В предыдущей части заглядывали под капот протокола доставки рабочего стола SPICE , а сейчас на операционный стол попала великая и ужасная ОС Windows - точнее, её графическая подсистема. Заглянем в её недры и окунёмся в её философию и историю развития. И заодно найдём интересные параллели в Linux . Это вторая часть цикла про протокол SPICE и то, как он вынужден работать в современных условиях. Наша конечная цель - создать пилот стримингового агента для виртуальной машины на ОС Windows . Приглашаю под кат всех, кто работает или сталкивается с системами виртуализации, с протоколом SPICE, с виртуальными машинами в принципе; кто интересуется такими темами как удалённый доступ и компьютерная графика; да и вообще всех любознательных! В бездну виндового угнетения
-
Препарируем графическую подсистему Windows. Протокол SPICE в современном графическом стеке, часть 2
Мы продолжаем увлекательное путешествие по миру удалённого доступа . В предыдущей части заглядывали под капот протокола доставки рабочего стола SPICE , а сейчас на операционный стол попала великая и ужасная ОС Windows - точнее, её графическая подсистема. Заглянем в её недры и окунёмся в её философию и историю развития. И заодно найдём интересные параллели в Linux . Это вторая часть цикла про протокол SPICE и то, как он вынужден работать в современных условиях. Наша конечная цель - создать пилот стримингового агента для виртуальной машины на ОС Windows . Приглашаю под кат всех, кто работает или сталкивается с системами виртуализации, с протоколом SPICE, с виртуальными машинами в принципе; кто интересуется такими темами как удалённый доступ и компьютерная графика; да и вообще всех любознательных! В бездну виндового угнетения
-
Как я писал трей-утилиту для управления sing-box на Windows
Эта статья о том, как я хотел сэкономить несколько секунд при переключении системного прокси в Nekobox, а в итоге уже несколько месяцев пишу мини-программу для управления sing-box . Началось с того, что для прокси на Windows я стал использовать Nekobox. Про гибкое раздельное туннелирование я еще не знал, и приходилось постоянно включать и выключать системный прокси, чтобы зайти то туда (сайт заблокирован), то сюда (сайт блокирует IP прокси). Много раз в час: клик по значку в трее, режим системного прокси, отключить (а потом обратно). И я подумал, что было бы удобнее просто кликать по значку. Ничего сложного — почему бы не реализовать? Начал я, конечно же, с рисования значка. Решил, что хорошо подойдет портал из «Рика и Морти» как метафора беспрепятственного перемещения между измерениями. Провел целый вечер в Procreate на iPad, замучился, устал и отложил затею на потом. Что было дальше
-
Как я писал трей-утилиту для управления sing-box на Windows
Эта статья о том, как я хотел сэкономить несколько секунд при переключении системного прокси в Nekobox, а в итоге уже несколько месяцев пишу мини-программу для управления sing-box . Началось с того, что для прокси на Windows я стал использовать Nekobox. Про гибкое раздельное туннелирование я еще не знал, и приходилось постоянно включать и выключать системный прокси, чтобы зайти то туда (сайт заблокирован), то сюда (сайт блокирует IP прокси). Много раз в час: клик по значку в трее, режим системного прокси, отключить (а потом обратно). И я подумал, что было бы удобнее просто кликать по значку. Ничего сложного — почему бы не реализовать? Начал я, конечно же, с рисования значка. Решил, что хорошо подойдет портал из «Рика и Морти» как метафора беспрепятственного перемещения между измерениями. Провел целый вечер в Procreate на iPad, замучился, устал и отложил затею на потом. Что было дальше
-
Как я писал трей-утилиту для управления sing-box на Windows
Эта статья о том, как я хотел сэкономить несколько секунд при переключении системного прокси в Nekobox, а в итоге уже несколько месяцев пишу мини-программу для управления sing-box . Началось с того, что для прокси на Windows я стал использовать Nekobox. Про гибкое раздельное туннелирование я еще не знал, и приходилось постоянно включать и выключать системный прокси, чтобы зайти то туда (сайт заблокирован), то сюда (сайт блокирует IP прокси). Много раз в час: клик по значку в трее, режим системного прокси, отключить (а потом обратно). И я подумал, что было бы удобнее просто кликать по значку. Ничего сложного — почему бы не реализовать? Начал я, конечно же, с рисования значка. Решил, что хорошо подойдет портал из «Рика и Морти» как метафора беспрепятственного перемещения между измерениями. Провел целый вечер в Procreate на iPad, замучился, устал и отложил затею на потом. Что было дальше
-
Защита программ без IF: ретро-анализ библиотеки TViorProtect (Delphi 7)
Что если защита от копирования вообще не содержит ни одного условного перехода? Ретро-разбор библиотеки 2009 года, где вместо if (key == valid) используется вычисление адреса следующей функции, любая ошибка в данных уводит процессор в никуда. Классический взломщик ищет в дизассемблере инструкции JZ/JNZ и инвертирует их ("Magic Jump"). Здесь этот приём не работает: нет точки принятия решения, нет и цели для патча. Вместо этого серийный номер диска, CRC32 исполняемого файла и системная дата складываются в единственно верный адрес перехода. Чуть изменил данные - получил Access Violation в случайном месте памяти.
https://habr.com/ru/articles/1008824/
#Delphi_7 #Pascal #WinAPI #Защита_программного_обеспечения #Обфускация #Антиотладка #Ретро #x86 #Программирование
-
Защита программ без IF: ретро-анализ библиотеки TViorProtect (Delphi 7)
Что если защита от копирования вообще не содержит ни одного условного перехода? Ретро-разбор библиотеки 2009 года, где вместо if (key == valid) используется вычисление адреса следующей функции, любая ошибка в данных уводит процессор в никуда. Классический взломщик ищет в дизассемблере инструкции JZ/JNZ и инвертирует их ("Magic Jump"). Здесь этот приём не работает: нет точки принятия решения, нет и цели для патча. Вместо этого серийный номер диска, CRC32 исполняемого файла и системная дата складываются в единственно верный адрес перехода. Чуть изменил данные - получил Access Violation в случайном месте памяти.
https://habr.com/ru/articles/1008824/
#Delphi_7 #Pascal #WinAPI #Защита_программного_обеспечения #Обфускация #Антиотладка #Ретро #x86 #Программирование
-
Защита программ без IF: ретро-анализ библиотеки TViorProtect (Delphi 7)
Что если защита от копирования вообще не содержит ни одного условного перехода? Ретро-разбор библиотеки 2009 года, где вместо if (key == valid) используется вычисление адреса следующей функции, любая ошибка в данных уводит процессор в никуда. Классический взломщик ищет в дизассемблере инструкции JZ/JNZ и инвертирует их ("Magic Jump"). Здесь этот приём не работает: нет точки принятия решения, нет и цели для патча. Вместо этого серийный номер диска, CRC32 исполняемого файла и системная дата складываются в единственно верный адрес перехода. Чуть изменил данные - получил Access Violation в случайном месте памяти.
https://habr.com/ru/articles/1008824/
#Delphi_7 #Pascal #WinAPI #Защита_программного_обеспечения #Обфускация #Антиотладка #Ретро #x86 #Программирование
-
CIMCO Edit для Windows 7
Windows 10 нинужон! Запускаем 3D симуляцию самого популярного в мире редактора УП для станков с ЧПУ CIMCO Edit 2025 (2025.01.25) в операционной системе Microsoft Windows 7 . И ещё переводим на русский язык саму программу. Читать далее всё это безобразие...
https://habr.com/ru/articles/980632/
#CIMCO #windows_7 #crack #winapi #licensing #c++ #cad #cam #чпу #русский_перевод
-
CIMCO Edit для Windows 7
Windows 10 нинужон! Запускаем 3D симуляцию самого популярного в мире редактора УП для станков с ЧПУ CIMCO Edit 2025 (2025.01.25) в операционной системе Microsoft Windows 7 . И ещё переводим на русский язык саму программу. Читать далее всё это безобразие...
https://habr.com/ru/articles/980632/
#CIMCO #windows_7 #crack #winapi #licensing #c++ #cad #cam #чпу #русский_перевод
-
CIMCO Edit для Windows 7
Windows 10 нинужон! Запускаем 3D симуляцию самого популярного в мире редактора УП для станков с ЧПУ CIMCO Edit 2025 (2025.01.25) в операционной системе Microsoft Windows 7 . И ещё переводим на русский язык саму программу. Читать далее всё это безобразие...
https://habr.com/ru/articles/980632/
#CIMCO #windows_7 #crack #winapi #licensing #c++ #cad #cam #чпу #русский_перевод
-
Голосовой ввод для Windows через Vosk своими руками
Я пытался найти в Windows похожий встроенный инструмент или готовое решение, но все они либо брали на себя слишком много неактуального для меня функционала, так как задумывались для людей с ограниченными возможностями, либо были платными, либо были недоступны для русского языка. Лучшим выходом из моей ситуации было создать свое минималистичное решение, и вот как это было:
https://habr.com/ru/articles/969360/
#vosk #распознавание_речи #speechtotext #python #голосовые_интерфейсы #winapi
-
Голосовой ввод для Windows через Vosk своими руками
Я пытался найти в Windows похожий встроенный инструмент или готовое решение, но все они либо брали на себя слишком много неактуального для меня функционала, так как задумывались для людей с ограниченными возможностями, либо были платными, либо были недоступны для русского языка. Лучшим выходом из моей ситуации было создать свое минималистичное решение, и вот как это было:
https://habr.com/ru/articles/969360/
#vosk #распознавание_речи #speechtotext #python #голосовые_интерфейсы #winapi
-
Голосовой ввод для Windows через Vosk своими руками
Я пытался найти в Windows похожий встроенный инструмент или готовое решение, но все они либо брали на себя слишком много неактуального для меня функционала, так как задумывались для людей с ограниченными возможностями, либо были платными, либо были недоступны для русского языка. Лучшим выходом из моей ситуации было создать свое минималистичное решение, и вот как это было:
https://habr.com/ru/articles/969360/
#vosk #распознавание_речи #speechtotext #python #голосовые_интерфейсы #winapi
-
Assembler для Windows в Visual Studio. Часть вторая — MASM x64 и юникод
Вторая часть рассказа об ассемблере под Windows. Здесь я расскажу про 64-разрядные приложения в Windows, чем отличается MASM 64 от MASM 32, про макросы из MASM 64 SDK, как работать с Юникодом на примере простого консольного REPL'а, а ещё как обойтись без Visual Studio и пользоваться masm просто из командной строки. Первая часть — Assembler для Windows в Visual Studio .
https://habr.com/ru/companies/ruvds/articles/884240/
#assembler #masm #winapi #windows #visual_studio #64bit #ruvds_статьи
-
Assembler для Windows в Visual Studio. Часть вторая — MASM x64 и юникод
Вторая часть рассказа об ассемблере под Windows. Здесь я расскажу про 64-разрядные приложения в Windows, чем отличается MASM 64 от MASM 32, про макросы из MASM 64 SDK, как работать с Юникодом на примере простого консольного REPL'а, а ещё как обойтись без Visual Studio и пользоваться masm просто из командной строки. Первая часть — Assembler для Windows в Visual Studio .
https://habr.com/ru/companies/ruvds/articles/884240/
#assembler #masm #winapi #windows #visual_studio #64bit #ruvds_статьи
-
Assembler для Windows в Visual Studio. Часть вторая — MASM x64 и юникод
Вторая часть рассказа об ассемблере под Windows. Здесь я расскажу про 64-разрядные приложения в Windows, чем отличается MASM 64 от MASM 32, про макросы из MASM 64 SDK, как работать с Юникодом на примере простого консольного REPL'а, а ещё как обойтись без Visual Studio и пользоваться masm просто из командной строки. Первая часть — Assembler для Windows в Visual Studio .
https://habr.com/ru/companies/ruvds/articles/884240/
#assembler #masm #winapi #windows #visual_studio #64bit #ruvds_статьи
-
Мониторинг CPU + RAM в трее. Часть 2
Я хотел видеть состояние своих CPU и ОЗУ прямо в трее панели задач, чтобы не открывать дополнительные окна, по типу cpuz или CoreTemp. Решил написать свою фоновую программу с возможностью настроек и вот что получилось. Интересно!
https://habr.com/ru/articles/938430/
#C++ #winapi #мониторинг #десктоп #программирование #gdi+ #софт
-
Мониторинг CPU + RAM в трее. Часть 2
Я хотел видеть состояние своих CPU и ОЗУ прямо в трее панели задач, чтобы не открывать дополнительные окна, по типу cpuz или CoreTemp. Решил написать свою фоновую программу с возможностью настроек и вот что получилось. Интересно!
https://habr.com/ru/articles/938430/
#C++ #winapi #мониторинг #десктоп #программирование #gdi+ #софт
-
Мониторинг CPU + RAM в трее. Часть 2
Я хотел видеть состояние своих CPU и ОЗУ прямо в трее панели задач, чтобы не открывать дополнительные окна, по типу cpuz или CoreTemp. Решил написать свою фоновую программу с возможностью настроек и вот что получилось. Интересно!
https://habr.com/ru/articles/938430/
#C++ #winapi #мониторинг #десктоп #программирование #gdi+ #софт
-
Утечка хендлов в IP Helper API: как мы нашли и обошли ещё один баг Windows
После статьи о баге в CancelIoEx решил рассказать ещё об одном дефекте в системных компонентах Windows — на этот раз в IP Helper (часть Windows API, отвечающая за работу с сетевой статистикой и таблицами соединений). Этот API, среди прочего, даёт возможность сопоставлять перехваченные на уровне сети пакеты с локальными процессами. Казалось бы, проверенный механизм, который работает «под капотом» множества утилит и сетевых фильтров. Но в ходе тестирования WireSock Secure Connect в режиме split tunneling по процессам мы наткнулись на утечку, способную за считанные минуты выбить лимит хендлов в системе. Поводом для расследования стало сообщение в нашей группе поддержки WireSock в Telegram: один из пользователей заметил аномально быстрый рост числа открытых дескрипторов процессов. Проблема стабильно воспроизводилась под нагрузкой и исчезала, если использовать фильтрацию по IP-адресам. Это стало первой зацепкой, которая в итоге вывела нас на баг в реализации IP Helper. Отдельное спасибо пользователю @dno5iq , который обнаружил проблему, выполнил реверсинг GetOwnerModuleFromPidAndInfo и помог подтвердить наличие дефекта в её реализации.
https://habr.com/ru/articles/935610/
#windows_api #wiresock #vpn #winapi #reverse_engineering #системное_программирование #proxifyre #ip_helper #split_tunneling #handle_leak
-
Утечка хендлов в IP Helper API: как мы нашли и обошли ещё один баг Windows
После статьи о баге в CancelIoEx решил рассказать ещё об одном дефекте в системных компонентах Windows — на этот раз в IP Helper (часть Windows API, отвечающая за работу с сетевой статистикой и таблицами соединений). Этот API, среди прочего, даёт возможность сопоставлять перехваченные на уровне сети пакеты с локальными процессами. Казалось бы, проверенный механизм, который работает «под капотом» множества утилит и сетевых фильтров. Но в ходе тестирования WireSock Secure Connect в режиме split tunneling по процессам мы наткнулись на утечку, способную за считанные минуты выбить лимит хендлов в системе. Поводом для расследования стало сообщение в нашей группе поддержки WireSock в Telegram: один из пользователей заметил аномально быстрый рост числа открытых дескрипторов процессов. Проблема стабильно воспроизводилась под нагрузкой и исчезала, если использовать фильтрацию по IP-адресам. Это стало первой зацепкой, которая в итоге вывела нас на баг в реализации IP Helper. Отдельное спасибо пользователю @dno5iq , который обнаружил проблему, выполнил реверсинг GetOwnerModuleFromPidAndInfo и помог подтвердить наличие дефекта в её реализации.
https://habr.com/ru/articles/935610/
#windows_api #wiresock #vpn #winapi #reverse_engineering #системное_программирование #proxifyre #ip_helper #split_tunneling #handle_leak
-
Утечка хендлов в IP Helper API: как мы нашли и обошли ещё один баг Windows
После статьи о баге в CancelIoEx решил рассказать ещё об одном дефекте в системных компонентах Windows — на этот раз в IP Helper (часть Windows API, отвечающая за работу с сетевой статистикой и таблицами соединений). Этот API, среди прочего, даёт возможность сопоставлять перехваченные на уровне сети пакеты с локальными процессами. Казалось бы, проверенный механизм, который работает «под капотом» множества утилит и сетевых фильтров. Но в ходе тестирования WireSock Secure Connect в режиме split tunneling по процессам мы наткнулись на утечку, способную за считанные минуты выбить лимит хендлов в системе. Поводом для расследования стало сообщение в нашей группе поддержки WireSock в Telegram: один из пользователей заметил аномально быстрый рост числа открытых дескрипторов процессов. Проблема стабильно воспроизводилась под нагрузкой и исчезала, если использовать фильтрацию по IP-адресам. Это стало первой зацепкой, которая в итоге вывела нас на баг в реализации IP Helper. Отдельное спасибо пользователю @dno5iq , который обнаружил проблему, выполнил реверсинг GetOwnerModuleFromPidAndInfo и помог подтвердить наличие дефекта в её реализации.
https://habr.com/ru/articles/935610/
#windows_api #wiresock #vpn #winapi #reverse_engineering #системное_программирование #proxifyre #ip_helper #split_tunneling #handle_leak
-
Мониторинг CPU и RAM на панели задач C++
Приветствую читателя этой статьи. Я студент, учусь по направлению «Приборостроение», но большую часть времени занимаюсь программированием. Все таки это меня привлекает больше. Задумывался по поводу смены ОС на Arch Linux, но пока отложил эту затею в долгий ящик. Смотрел различные ролики на YouTube и заметил, что многие пользователи ставят себе Polybar, в котором можно легко настраивать информацию, выводимую на нечто похожее на Панель задач в Windows. Тогда я подумал «А почему бы не сделать такое в винде?!» и сразу начал гуглить что к чему. Попытался найти готовые аналоги, но ничего не впечатлило, поэтому решил написать свою программу на C++.
-
Мониторинг CPU и RAM на панели задач C++
Приветствую читателя этой статьи. Я студент, учусь по направлению «Приборостроение», но большую часть времени занимаюсь программированием. Все таки это меня привлекает больше. Задумывался по поводу смены ОС на Arch Linux, но пока отложил эту затею в долгий ящик. Смотрел различные ролики на YouTube и заметил, что многие пользователи ставят себе Polybar, в котором можно легко настраивать информацию, выводимую на нечто похожее на Панель задач в Windows. Тогда я подумал «А почему бы не сделать такое в винде?!» и сразу начал гуглить что к чему. Попытался найти готовые аналоги, но ничего не впечатлило, поэтому решил написать свою программу на C++.
-
Мониторинг CPU и RAM на панели задач C++
Приветствую читателя этой статьи. Я студент, учусь по направлению «Приборостроение», но большую часть времени занимаюсь программированием. Все таки это меня привлекает больше. Задумывался по поводу смены ОС на Arch Linux, но пока отложил эту затею в долгий ящик. Смотрел различные ролики на YouTube и заметил, что многие пользователи ставят себе Polybar, в котором можно легко настраивать информацию, выводимую на нечто похожее на Панель задач в Windows. Тогда я подумал «А почему бы не сделать такое в винде?!» и сразу начал гуглить что к чему. Попытался найти готовые аналоги, но ничего не впечатлило, поэтому решил написать свою программу на C++.
-
Проект выходного дня: экранные линейки
. Привет, Хабр! Хочу поделиться историей как я портировал свой (очень)старый пет-проект с Delphi 7 на Zig с помощью LLM. Утилиты rulers (экранные линейки, «как в фотошопе»). В 2007 году это был простой инструмент для замеров и выравнивания элементов интерфейса прямо на экране, написанный на Delphi. Почти два десятилетия спустя я решил воскресить его, но с современным подходом: портировать на zig, да ещё и задействовав LLM для автоматизации. Почему? Потому что я реально фанатею от языка zig, и руки так и чешутся на нём что-то написать. Но переписывать не маленький кусок старого кода — занятие довольно унылое, и я всё откладывал его в «долгий ящик». С другой стороны, я, как реальный ИИ-скептик, с сомнением отношусь к новомодному вайб-кодингу и не доверяю таким инструментам. Но, всё же я решил рискнуть и попробовать, если не для написания нового кода, то хотя-бы для портирования уже написанного. Наверное, шанс на успех тут будет выше. Эта статья о том, что у меня получилось (и не получилось).
-
Проект выходного дня: экранные линейки
. Привет, Хабр! Хочу поделиться историей как я портировал свой (очень)старый пет-проект с Delphi 7 на Zig с помощью LLM. Утилиты rulers (экранные линейки, «как в фотошопе»). В 2007 году это был простой инструмент для замеров и выравнивания элементов интерфейса прямо на экране, написанный на Delphi. Почти два десятилетия спустя я решил воскресить его, но с современным подходом: портировать на zig, да ещё и задействовав LLM для автоматизации. Почему? Потому что я реально фанатею от языка zig, и руки так и чешутся на нём что-то написать. Но переписывать не маленький кусок старого кода — занятие довольно унылое, и я всё откладывал его в «долгий ящик». С другой стороны, я, как реальный ИИ-скептик, с сомнением отношусь к новомодному вайб-кодингу и не доверяю таким инструментам. Но, всё же я решил рискнуть и попробовать, если не для написания нового кода, то хотя-бы для портирования уже написанного. Наверное, шанс на успех тут будет выше. Эта статья о том, что у меня получилось (и не получилось).
-
Проект выходного дня: экранные линейки
. Привет, Хабр! Хочу поделиться историей как я портировал свой (очень)старый пет-проект с Delphi 7 на Zig с помощью LLM. Утилиты rulers (экранные линейки, «как в фотошопе»). В 2007 году это был простой инструмент для замеров и выравнивания элементов интерфейса прямо на экране, написанный на Delphi. Почти два десятилетия спустя я решил воскресить его, но с современным подходом: портировать на zig, да ещё и задействовав LLM для автоматизации. Почему? Потому что я реально фанатею от языка zig, и руки так и чешутся на нём что-то написать. Но переписывать не маленький кусок старого кода — занятие довольно унылое, и я всё откладывал его в «долгий ящик». С другой стороны, я, как реальный ИИ-скептик, с сомнением отношусь к новомодному вайб-кодингу и не доверяю таким инструментам. Но, всё же я решил рискнуть и попробовать, если не для написания нового кода, то хотя-бы для портирования уже написанного. Наверное, шанс на успех тут будет выше. Эта статья о том, что у меня получилось (и не получилось).
-
far2l в Ubuntu 25.04: наконец-то GUI-версия из коробки
Исторически первая версия far2l — порта Far Manager на Linux, BSD и Mac, была реализована как графическое приложение. Терминалы той эпохи не умели ни передавать приложению некоторые сочетания клавиш (такие как Control+Enter), ни давать ему возможность взаимодействия с буфером обмена. Кому же нужен Far без этих возможностей? Поэтому пришлось сделать своё собственное консольное окно со своим собственным рендерингом текста — да, усложнение, зато всё сразу заработало «как-в-Винде» (а потом и консольную версию сделали тоже). И сегодня мы празднуем историческое событие: графическая версия, наиболее полная в плане соответствия UX Windows-версии, попала, наконец, в официальные репозитории Ubuntu:
https://habr.com/ru/articles/903796/
#far_manager #far #linux #file_manager #фар #macos #bsd #winapi #ubuntu #консоль