home.social

#win32 — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #win32, aggregated by home.social.

  1. Как я автоматизировал UI в Windows: UIAutomation и Win32

    Привет, меня зовут Алексей, я C# разработчик. Я разрабатывал библиотеку для автоматизации взаимодействия с различными UI-элементами и их захвата. Одной из поддерживаемых сред в такой библиотеке обязательно должна быть Windows и в ней так же требуется: находить кнопки, поля, окна, списки, нажимать на них, читать значения, вводить текст и в целом обращаться с интерфейсом не как пользователь с мышкой, а как программа. На первый взгляд задача звучит просто: нашли элемент, кликнули, пошли дальше. Но в реальных приложениях у элемента может не быть (считай не будет) нормального AutomationId , у нескольких окон может быть один и тот же заголовок, дерево интерфейса может прогружаться не сразу, а старое desktop-приложение вообще не предназначено для взаимодействия с современными API для автоматизации. В итоге в моей библиотеке появилось два основных Windows-подхода:

    habr.com/ru/articles/1035292/

    #automation #ui_testing #ui_automation #winapi #win32 #тестирование #автоматизация #автоматизация_тестирования #интерфейсы #автоматизация_бизнеспроцессов

  2. Как я автоматизировал UI в Windows: UIAutomation и Win32

    Привет, меня зовут Алексей, я C# разработчик. Я разрабатывал библиотеку для автоматизации взаимодействия с различными UI-элементами и их захвата. Одной из поддерживаемых сред в такой библиотеке обязательно должна быть Windows и в ней так же требуется: находить кнопки, поля, окна, списки, нажимать на них, читать значения, вводить текст и в целом обращаться с интерфейсом не как пользователь с мышкой, а как программа. На первый взгляд задача звучит просто: нашли элемент, кликнули, пошли дальше. Но в реальных приложениях у элемента может не быть (считай не будет) нормального AutomationId , у нескольких окон может быть один и тот же заголовок, дерево интерфейса может прогружаться не сразу, а старое desktop-приложение вообще не предназначено для взаимодействия с современными API для автоматизации. В итоге в моей библиотеке появилось два основных Windows-подхода:

    habr.com/ru/articles/1035292/

    #automation #ui_testing #ui_automation #winapi #win32 #тестирование #автоматизация #автоматизация_тестирования #интерфейсы #автоматизация_бизнеспроцессов

  3. Как я автоматизировал UI в Windows: UIAutomation и Win32

    Привет, меня зовут Алексей, я C# разработчик. Я разрабатывал библиотеку для автоматизации взаимодействия с различными UI-элементами и их захвата. Одной из поддерживаемых сред в такой библиотеке обязательно должна быть Windows и в ней так же требуется: находить кнопки, поля, окна, списки, нажимать на них, читать значения, вводить текст и в целом обращаться с интерфейсом не как пользователь с мышкой, а как программа. На первый взгляд задача звучит просто: нашли элемент, кликнули, пошли дальше. Но в реальных приложениях у элемента может не быть (считай не будет) нормального AutomationId , у нескольких окон может быть один и тот же заголовок, дерево интерфейса может прогружаться не сразу, а старое desktop-приложение вообще не предназначено для взаимодействия с современными API для автоматизации. В итоге в моей библиотеке появилось два основных Windows-подхода:

    habr.com/ru/articles/1035292/

    #automation #ui_testing #ui_automation #winapi #win32 #тестирование #автоматизация #автоматизация_тестирования #интерфейсы #автоматизация_бизнеспроцессов

  4. Как я автоматизировал UI в Windows: UIAutomation и Win32

    Привет, меня зовут Алексей, я C# разработчик. Я разрабатывал библиотеку для автоматизации взаимодействия с различными UI-элементами и их захвата. Одной из поддерживаемых сред в такой библиотеке обязательно должна быть Windows и в ней так же требуется: находить кнопки, поля, окна, списки, нажимать на них, читать значения, вводить текст и в целом обращаться с интерфейсом не как пользователь с мышкой, а как программа. На первый взгляд задача звучит просто: нашли элемент, кликнули, пошли дальше. Но в реальных приложениях у элемента может не быть (считай не будет) нормального AutomationId , у нескольких окон может быть один и тот же заголовок, дерево интерфейса может прогружаться не сразу, а старое desktop-приложение вообще не предназначено для взаимодействия с современными API для автоматизации. В итоге в моей библиотеке появилось два основных Windows-подхода:

    habr.com/ru/articles/1035292/

    #automation #ui_testing #ui_automation #winapi #win32 #тестирование #автоматизация #автоматизация_тестирования #интерфейсы #автоматизация_бизнеспроцессов

  5. [Перевод] 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. Процесс был запутанным, но обеспечивал полный контроль.

    habr.com/ru/articles/1025204/

    #win32_api #win32 #скины

  6. 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 🐛🤦‍♂️.
    giodicanio.com/2024/05/14/why- #GiovanniBlog #StringViews #CCode #NastyBugs #DeveloperHumor #HackerNews #ngated

  7. 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 🐛🤦‍♂️.
    giodicanio.com/2024/05/14/why- #GiovanniBlog #StringViews #CCode #NastyBugs #DeveloperHumor #HackerNews #ngated

  8. 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 🐛🤦‍♂️.
    giodicanio.com/2024/05/14/why- #GiovanniBlog #StringViews #CCode #NastyBugs #DeveloperHumor #HackerNews #ngated

  9. 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 🐛🤦‍♂️.
    giodicanio.com/2024/05/14/why- #GiovanniBlog #StringViews #CCode #NastyBugs #DeveloperHumor #HackerNews #ngated

  10. I pushed an update to #DOStodon (the #Mastodon client for MS-DOS):

    - Updated #curl to 8.13.0
    - Updated #mbedTLS to 3.6.3
    - Fixed #win32 version (works on #WinXP or newer), DLLs were missing

    Grab it at github.com/SuperIlu/DOStodon

    Screenshot is showing the win32 version running on Win10.

    #Javascript #RetroComputing #MSDOS #CreativeCoding #MastodonClient #FreeDOS #DJGPP #DOjS

  11. I updated #mbedTLS and #curl in #DOjS. This one took a lot longer than I expected because curl dropped Makefile.mk builds and I had to switch to #CMake or #autconf.
    I went with CMake, but had to work around some weird problems.

    #MSDOS and #Linux build are already green again, I'll tackle #win32 later...

    #RetroComputing #JavaScript

  12. My 2024 #GitHub #recap:

    - Two #DOjS releases and a #win32 port

    - A new release of #jSH

    - Contributed #DJGPP patches to #mbedTLS and #jasper

    - Updated my #BuildRoot GeodeLX repo

    - Updated DOSQLite (#SQLite for MS-DOS)

    - 11 Updates to #DOStodon (#MastodonClient for MS-DOS)

    - Three updates to #httpDOS (#HTTPS server for MS-DOS)

    #MSDOS #RetroComputing #recap2024 #JavaScript #SQLite3 #FreeDOS #creativecoding #p5js #retrodev #retrodevelopment #3dfx #OpenGL #Processing

  13. BTW the specific #win32-api-braindamage that hit me in #dos2ansi 1.0 was FlushFileBuffers(): learn.microsoft.com/en-us/wind

    Sure, my fault not to read the *whole* docs before using it and just assuming sane semantics 🙈:

    > The function fails if _hFile_ is a handle to the console output. That is because the console output is not buffered.

    Okayyyy. I mean, not *having* to know what some "handle" used to do I/O is referring to exactly is kind of the whole point of any I/O abstraction, at least I thought so. Any API I've seen so far would just make it a no-op (and, of course, succeed) in such a case. 🤯

    #Windows #WinAPI #braindamage

  14. #Microsoft wants to rewrite `explorer.exe` with the #Windows App #SDK and #WinUI3.

    The current #explorer is slow af, but somehow I feel like they will manage to make it even slower.

    I wanted to try #WinUI a few times now, but they made it impossible to use in a regular program. It has to be a packaged #App and it has to be distributed through the #WindowsStore. And all of a sudden, the #Win32 #GUI seems still fine to me.

    Or, actually, #WxWidgets! Did you know it had an update recently?

  15. [Перевод] Разработка интерфейса для Windows — это боль

    Последние несколько дней я пытался найти библиотеку, которая бы позволила мне писать на C++ программы с GUI. Мои требования были довольно просты: • Достаточно только поддержки Windows • Разрешено коммерческое использование • Простая стилизация, в том числе и тёмный режим • Результатом должен быть единый файл .exe размером меньше 40 МБ без или с минимальным количеством зависимостей • Написание части программы с GUI не должно занимать больше времени, чем сама функциональность

    habr.com/ru/articles/825916/

    #gui #win32 #win32_api #qt #wfc

  16. I pushed an update to #DOStodon (the #Mastodon client for MS-DOS):

    - Updated README because of login-problems with Mastodon 4.3 or newer
    - Uploaded #win32 version (works on #WinXP or newer)

    Grab it at github.com/SuperIlu/DOStodon

    #Javascript #RetroComputing #MSDOS #CreativeCoding #MastodonClient #FreeDOS #DJGPP #DOjS

  17. My desktop is KDE Plasma, but I also like to use GNOME apps.

    I find funny how this weird mix of Qt+GTK4 happens to be exactly like the weird mix of Win32+UWP on Windows.

    #Linux #Desktop #Windows #KDE #Plasma #GNOME #Qt #GTK #Win32 #UWP

  18. Anyone here with #WinRT knowledge?
    If I have e.g. com:ComInterface and com4:ComInterface registered, does com4 on supported systems override the com declaration?

    #Windows #Win32 #UWP #MSIX

  19. Okayokay #Microsoft, how can you fuck up #Windows so badly?

    User complains "Task Manager autostart settings have no effect on your application"

    User checks HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    And both keys, SupportFullTrustStartupTasks and EnableFullTrustStartupTasks, are missing.
    Recreates it, and autostart works again.

    In fact, everything except "HideFastUserSwitching" and "DisableAutomaticRestartSignOn" were missing.

    HOW!?

    #Win32 #UWP

  20. « Alors là on a mis un champ "SectorSize" dans la structure par ce qu'on trouvait que sinon c'était trop simple, il n'y avait pas assez de paramètres. Mais faut toujours le mettre à 512, vous avez pas le choix. »

    Halala l'API win32 de Microsoft, c'est toujours un plaisir... 😅

    #development #win32 #Microsoft #Windows

  21. Someone wanna chime in and tell me what I'm doing wrong?
    I have a #Windows shell extension, built for x86, arm64X (arm64 + arm64EC), and a host process of arm64.
    The shell extension either works in arm64 Explorer (when built as arm64), or in any x64-emulated process (when built as arm64X, or arm64EC). But, it doesn't for both (x64-emulated, and arm64 process).
    I've tried all combination (ARM64 only, ARM64EC only, ARM64X).

    #Microsoft #Cpp #Win32 #Programming #Developer

  22. A screenshot of my desktop: wine 11.5 running inside arch linux on distrobox. Running applications: winamp, firefox esr for windows, freepascal and cygwin installation.
    Base system: Devuan GNU/Linux Excalibur

    #wine #win32 #experiments

  23. Cool cool #Microsoft.
    Your MIDL tooling doesn't support #ARM64, so I can't build a COM-server with an ARM64 native binary, is that correct?
    I have to use #ARM64EC, which isn't supported on Windows 10. Is that correct?

    #Windows #Win32 #Cpp

  24. Did you know?
    CredWrite() has a limit of how any credentials can be stored.
    Why.

    #Win32 #Microsoft #Windows

  25. [Перевод] Как превратить Linux в Windows

    Тезис: следует создать такой дистрибутив Linux, который по умолчанию выполняет двоичные файлы Windows через Wine. Если я найду файл в формате .exe, которому 20 лет, я по-прежнему смогу запустить его на современной Windows. Попробуйте проделать подобное с двоичным файлом Linux, которому всего год. Совершенно не гарантированно, что он запустится, в зависимости от того, какие обновления успели произойти. Также не гарантируется, что заработает даже сегодняшний двоичный файл Linux, если собрать его в одном дистрибутиве, а попытаться запустить на разных других дистрибутивах. Возникает ровно такая же проблема, связанная с версиями установленных библиотек.

    habr.com/ru/companies/timeweb/

    #timeweb_перевод #windows #apple #linux #appimage #elf #win32 #freebsd #reactos #android

  26. RE: fosstodon.org/@eclipseadoptium

    A reminder that @eclipseadoptium will not be publishing bulds for some platforms in the January set of releases which are being prepared at the moment.

  27. I'm certain now: IShellWindows::FindWindowSW was never supposed to work with a cookie from DShellWindowsEvents.

    <learn.microsoft.com/en-us/wind>

    Calling it is impossible without getting S_FALSE back.

    #Microsoft #Windows #Win32 #Cpp #DotNet #CSharp

  28. @uaa #Win32 の時代に現在できることのほとんどが整いましたが、 #MSX だとどうですか?

  29. loss32 è un progetto che vuole trasformare Linux in un desktop Win32 completo usando WINE, un’idea audace per eseguire software Windows direttamente su Linux. #Linux #win32 #Windows

    linuxeasy.org/loss32-linux-com

  30. My efforts to install Odin under OS/2 Warp 3 have been less than satisfying. What I have done:
    * Upgrade Warp 3 to FP 40.
    * Install tcpip ("INTERNET" folder of Warp 3 Bonus CD)
    * Install kernel with *.sym file (W30821U)

    What I get:
    * Error SYS3190 (has apparently something to do with libc066.dll)

    Any idea what to try next?

    #os2 #warp3 #odin089 #win32