I've been researching this topic for a while, but the information is extremely limited and very confusing.
DaVinci Resolve is an editing and color grading software, its tools are so many and so specialized that external hardware has been created to speed up the workflow.
Now, such tools are crazy expensive, so I wanted to create my own version with a microcontroller. The microcontroller programming isn't the hard part, making it interact with the UI is.
I have tried Cheat Engine to check the parameters in memory, and that worked, however I can write a bit of C++ but definitely not assembly, also manually changing values in a memory address during execution probably isn't the right way of doing it, so I was looking for another solution: UI automation.
It's crazy how there is no API documentation for Microsoft's UIA, and if there is, they've done a great job at hiding it. I just don't know how to start writing code for it.
Also, the "Inspector" tool in Windows shows that the parameters in the UI have no value, but rather the value is written in the name of the parameter.
I know that DaVinci Resolve is written using QT5, I tried looking for documentation about it, but it took me to 3rd party paid software and that's not what I need.
I have the most experience with Python, and I did try pywinauto. I managed to attach to the process and print the entire UI tree. The problem is that 99% of the elements show up as "Custom" elements without name, value, or any kind of control.
With all of this considered, I would like some help on how to approach programmatically control a 3rd party software.