Как я автоматизировал 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-элементами и их захвата. Одной из поддерживаемых сред в такой библиотеке...

Хабр

Best mitigation for windows related issues…

Delete #win32, install #linux xD ✅ 💡  ✨

https://tenor.com/view/pingu-tanto-di-cappello-chapeau-hat-hats-off-gif-19642701

Tenor

Летающих машин нет, Win32 жив. В Microsoft признали, что Windows до сих пор держится на API из 1990-х

https://www.securitylab.ru/news/572515.php

> Под современным интерфейсом Windows 11 по-прежнему работает Win32, вокруг которого за десятилетия выросла огромная экосистема.

Windows 11 может выглядеть как современная система с ИИ-функциями, новым интерфейсом и облачными сервисами, но под верхним слоем по-прежнему лежит технология из 1990-х.

В посте технический директор Microsoft Azure Марк Руссинович написал, что в 1990-е разработчики скорее ожидали к 2026 году «летающие машины и станции на Луне», а не продолжающееся доминирование Win32.

https://x.com/docsmsft/status/2052089975802368301

#microsoft #win32 #MarkRussinovich

How do I inform Windows that I’m writing a binary file? | by Raymond Chen

https://devblogs.microsoft.com/oldnewthing/20260504-00/?p=112296

#windowsdev #win32 #programming #cpp

How do I inform Windows that I'm writing a binary file? - The Old New Thing

You don't. All files are binary at the file system level.

The Old New Thing
Tech Notes: Theseus, a static Windows emulator

An new old approach to emulation.

[Перевод] Win32 API и ностальгия по окнам странной формы

Я по горло сыт стандартно выглядящими приложениями. Сегодня все десктопные приложения Windows выглядят одинаково, да и внутри устроены одинаково: их создают на основе дурацких браузерных обёрток React, Electron, electronbun и Tauri, имитирующих реальные десктопные приложения. Они медленно работают и занимают кучу памяти — по сути, это bloatware. Блокнот — это, блин, приложение для простых ЗАМЕТОК, а не замена Word, калькулятор — это калькулятор, а не планировщик лунной миссии НАСА. На каком-то этапе Microsoft сбилась с курса, как будто сдалась и передала бразды правления куче веб-разработчиков, незнакомых с концепцией оптимизации. Чёртов Блокнот занимает в памяти почти 50 МБ, хотя эквивалентное приложение, написанное на чистом Win32 C, занимает 1,8 МБ. Вроде бы, по современным меркам 50 МБ — это не так много, но в том-то и смысл: эти мегабайты постепенно накапливаются. Недавно я купил новый Intel Ultra 9 285 с 32 ГБ ОЗУ, но при запуске Windows 11 память уже была заполнена на 77%. Программирование на Win32 API — утерянное ныне искусство; я с ностальгией вспоминаю, как когда-то программировали приложения для Windows. Процесс был запутанным, но обеспечивал полный контроль.

https://habr.com/ru/articles/1025204/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1025204

#win32_api #win32 #скины

Win32 API и ностальгия по окнам странной формы

Я по горло сыт стандартно выглядящими приложениями. Сегодня все десктопные приложения Windows выглядят одинаково, да и внутри устроены одинаково: их создают на основе дурацких браузерных обёрток...

Хабр

[Перевод] Win32 API и ностальгия по окнам странной формы

Я по горло сыт стандартно выглядящими приложениями. Сегодня все десктопные приложения Windows выглядят одинаково, да и внутри устроены одинаково: их создают на основе дурацких браузерных обёрток React, Electron, electronbun и Tauri, имитирующих реальные десктопные приложения. Они медленно работают и занимают кучу памяти — по сути, это bloatware. Блокнот — это, блин, приложение для простых ЗАМЕТОК, а не замена Word, калькулятор — это калькулятор, а не планировщик лунной миссии НАСА. На каком-то этапе Microsoft сбилась с курса, как будто сдалась и передала бразды правления куче веб-разработчиков, незнакомых с концепцией оптимизации. Чёртов Блокнот занимает в памяти почти 50 МБ, хотя эквивалентное приложение, написанное на чистом Win32 C, занимает 1,8 МБ. Вроде бы, по современным меркам 50 МБ — это не так много, но в том-то и смысл: эти мегабайты постепенно накапливаются. Недавно я купил новый Intel Ultra 9 285 с 32 ГБ ОЗУ, но при запуске Windows 11 память уже была заполнена на 77%. Программирование на Win32 API — утерянное ныне искусство; я с ностальгией вспоминаю, как когда-то программировали приложения для Windows. Процесс был запутанным, но обеспечивал полный контроль.

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

#win32_api #win32 #скины

Win32 API и ностальгия по окнам странной формы

Я по горло сыт стандартно выглядящими приложениями. Сегодня все десктопные приложения Windows выглядят одинаково, да и внутри устроены одинаково: их создают на основе дурацких браузерных обёрток...

Хабр

how it feels to program with the win32 api

#win32 #windows #windowsapi #win32api

🌖 直接使用 Win32 API、奇形怪狀的視窗,以及它們為何大多消失
➤ 回溯Win32的自由:重塑Windows視窗美學與其消失的代價
https://warped3.substack.com/p/direct-win32-api-weird-shaped-windows
作者對現代 Windows 應用程式過度依賴網頁技術(如 Electron、React)導致的臃腫、緩慢和高記憶體佔用深感不滿。他懷念過去直接使用 Win32 API 程式設計的黃金時代,當時開發者能完全掌控視窗外觀與行為,創造出許多獨特且非矩形的「奇形怪狀」視窗,這些設計為應用程式帶來了獨特的識別性。文章詳細闡述瞭如何透過 Win32 API 實現這些自訂視窗:從訊息驅動模型,到使用區域物件(HRGN)建立橢圓或點陣圖形狀的視窗,以及如何利用分層視窗(WS_EX_LAYERED)實現逐像素透明和動畫效果。然而,作者也坦承,捨棄標準視窗框架意味著開發者需手動處理所有基本功能(如拖曳、調整大小),這使得開發成本高昂。隨著桌面UI文化轉向可靠性和
#Win32 API #桌面應用程式 #使用者介面 #程式設計
Direct Win32 API, Weird-Shaped Windows, and Why They Mostly Disappeared

The nice thing about Win32 is that it does not try to talk you out of any of this. It just gives you the messages, the handles, the drawing APIs, and enough rope to ...

Barn Lab
Giovanni's blog just dropped the hottest take 😎: "Why not use string views instead of const& wstrings?" Because he's apparently in the business of crafting "nasty bugs" and defying rationality with #Win32 C code 🐛🤦‍♂️.
https://giodicanio.com/2024/05/14/why-dont-you-use-string-views-like-std-wstring_view-instead-of-passing-std-wstring-by-const-reference/ #GiovanniBlog #StringViews #CCode #NastyBugs #DeveloperHumor #HackerNews #ngated
Why Don’t You Use String Views (as std::wstring_view) Instead of Passing std::wstring by const&?

Thank you for the suggestion. But *in that context* that would cause nasty bugs in my code, and in code that relies on it.

Giovanni Dicanio's Blog