Как я автоматизировал 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. Протокол SPICE в современном графическом стеке, часть 2

Мы продолжаем увлекательное путешествие по миру удалённого доступа . В предыдущей части заглядывали под капот протокола доставки рабочего стола SPICE , а сейчас на операционный стол попала великая и ужасная ОС Windows - точнее, её графическая подсистема. Заглянем в её недры и окунёмся в её философию и историю развития. И заодно найдём интересные параллели в Linux . Это вторая часть цикла про протокол SPICE и то, как он вынужден работать в современных условиях. Наша конечная цель - создать пилот стримингового агента для виртуальной машины на ОС Windows . Приглашаю под кат всех, кто работает или сталкивается с системами виртуализации, с протоколом SPICE, с виртуальными машинами в принципе; кто интересуется такими темами как удалённый доступ и компьютерная графика; да и вообще всех любознательных! В бездну виндового угнетения

https://habr.com/ru/articles/1034998/

#spice #windows #winapi #qxl #directx #gpu #x11

Препарируем графическую подсистему Windows. Протокол SPICE в современном графическом стеке, часть 2

Вступление Хабр, привет! Я - Леонид Забурунов, инженер-программист компании БФГ - стартапа по разработке системы виртуализации - в отделе разработки систем виртуализации графических ресурсов. В данном...

Хабр

Как я писал трей-утилиту для управления sing-box на Windows

Эта статья о том, как я хотел сэкономить несколько секунд при переключении системного прокси в Nekobox, а в итоге уже несколько месяцев пишу мини-программу для управления sing-box . Началось с того, что для прокси на Windows я стал использовать Nekobox. Про гибкое раздельное туннелирование я еще не знал, и приходилось постоянно включать и выключать системный прокси, чтобы зайти то туда (сайт заблокирован), то сюда (сайт блокирует IP прокси). Много раз в час: клик по значку в трее, режим системного прокси, отключить (а потом обратно). И я подумал, что было бы удобнее просто кликать по значку. Ничего сложного — почему бы не реализовать? Начал я, конечно же, с рисования значка. Решил, что хорошо подойдет портал из «Рика и Морти» как метафора беспрепятственного перемещения между измерениями. Провел целый вечер в Procreate на iPad, замучился, устал и отложил затею на потом. Что было дальше

https://habr.com/ru/articles/1031978/

#singbox #прокси #winapi #delphi #программирование

Как я писал трей-утилиту для управления sing-box на Windows

Эта статья о том, как я хотел сэкономить несколько секунд при переключении системного прокси в Nekobox, а в итоге уже несколько месяцев пишу мини-программу для управления sing-box . Началось с того,...

Хабр

Защита программ без 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)

В период активной разработки программного обеспечения на Delphi 7 возникла необходимость в защите коммерчески успешных продуктов от несанкционированного копирования. Перед созданием собственного...

Хабр
Photoshop Finally Works on Linux

PeerTube
30 years of ReactOS

ReactOS is a free, opensource reimplementation of windows

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

Уважаемый читаль помнит, что всех прошлых публикациях активно терроризировали корпорацию Google , которая, видать, уже смирилась с актуальными версиями браузера Chrome ( 141.x ), запускающимися в...

Хабр

Голосовой ввод для Windows через Vosk своими руками

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

https://habr.com/ru/articles/969360/

#vosk #распознавание_речи #speechtotext #python #голосовые_интерфейсы #winapi

Голосовой ввод для Windows через Vosk своими руками

Привет! Меня зовут Иван Володин , я разработчик DD Planet , и я задался целью сделать для себя максимально удобный скрипт для набора текста речью. Содержание Введение Определимся с целями Выбор...

Хабр

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 и юникод

В этой части я расскажу о 64-разрядном ассемблере. Ассемблер будет тот же MASM, IDE будет всё та же Visual Studio. Для тех, кому не хочется использовать VS, будет простой пример с обычным батником в...

Хабр

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 и юникод

В этой части я расскажу о 64-разрядном ассемблере. Ассемблер будет тот же MASM, IDE будет всё та же Visual Studio. Для тех, кому не хочется использовать VS, будет простой пример с обычным батником в...

Хабр