Automating a  program where your element doesn't have a name with UI Automation and AutoHotkey
Channel: AUTOHOTKEY Gurus
Date: 24/06/2022

We continue on using the UI Automation API and show how you can automate a program when you don't have a name available.  Learn more here: https://the-Automator.com/UIA

TLDR: Automation UI can be used to reliably identify elements and automate programs for faster code execution.

1. 00:00 🔎 Using automation UI, we found a way to capture information about an object, even when the UIA Viewer library wasn't giving the path.
 1.1 We showed how to use automation UI to find elements without a name, depending on the program being automated.
 1.2 The UIA Viewer library is old but it can be used to capture information about an object.
 1.3 It was not giving the path for certain things, so certain steps were taken to enable path capturing.

2. 03:03 🔎 Identify elements by automation ID for reliable results.
 2.1 Using the inspector tool, you can identify elements by their automation ID, which is more reliable than using the class name.
 2.2 Click the play button to see the last bit of the video.

3. 05:05 🔎 Use UIAutomation to find and interact with elements in a window using ElementFromHandle and ResolveExe functions.
 3.1 Using UIAutomation, you can find a control and perform actions on it by using the ElementFromHandle and ResolveExe functions.
 3.2 FindFirstByExpression can be used to find a specific element inside the main window.

4. 07:11 🔍 Use properties and expressions to search for specific values in automation.
 4.1 Copy the property you're looking for, put it in a string with an equal sign, and use it to target any property.
 4.2 You can use any other thing like area role to control the automation, but it must be in lower case.
 4.3 You can use an expression with a property and an equal sign to search for a specific value.

5. 10:43 🎧 Click play, wait, then stop & save.
 5.1 Click the play button, wait, then click the stop button and save the element.

6. 11:48 🐌 Wait for elements to exist before interacting with them to speed up code execution.
 6.1 Elements may not be present all the time, and can be created or removed depending on the program's memory usage.
 6.2 Running the script while minimized will not work, but it will still run in the background and stop the video after three seconds.
 6.3 Wait for elements to exist before interacting with them to speed up code execution.

7. 15:09 🤖 Automate programs with the acc library to click on controls and create queues of actions that wait for elements to exist.
 7.1 The acc library allows for automation of programs that would otherwise be impossible, and can dynamically move around on the screen.
 7.2 Clicking on a control brings the window forward, mimicking a real click.
 7.3 Create a queue of actions that wait for an element to exist before clicking on it.

8. 18:33 🔥 Get this class to learn inheritance and build simple tools on sale now!
 8.1 This complex class on objects is on sale and will help you understand inheritance and build simple tools.


Summary for https://youtu.be/73abyUg5Glg by www.eightify.app