An example of UIAutomation
Not logged in
This forum is sponsored by Mistachkin Systems.
Eagle: Secure Software Automation
I forgot to write my environment.
Yes, I wanted to use .NET 4.0 build for compatibility among Windows XP, 7 and 10.


(PC1)
OS: Windows 10 Pro 64bit 21H2  
Tcl/Tk: BAWT Tcl 8.6.4 Batteries Included (32 bit)  
Eagle/Garuda: Beta 49  

(PC2)
OS: Windows 7 Professional SP1 32bit  
Tcl/Tk: ActiveTcl 8.6.4.1 32bit  
Eagle/Garuda: Beta 50  

This is the shortest script.
In both PCs, before doing automation work, the script raises an exception.  
object or type "ClientSettings" not found


```tcl
set exehome [pwd]
set EAGLE_DLL [file join $::exehome Eagle.dll]

namespace eval ::Garuda {
    variable methodFlags 0x40; # METHOD_PROTOCOL_V1R2
    variable assemblyPath $::EAGLE_DLL
}

package require Garuda

puts [eagle version]
puts [garuda packageid]

eagle {
    object load UIAutomationClient
    object load UIAutomationTypes
    object load UIAutomationProvider

    set assembly [object load -alias UIAutomationClientsideProviders]

    object import System.Windows.Automation

    object invoke ClientSettings \
		RegisterClientSideProviderAssembly [$assembly GetName]
}
```

The output is as follows.

```
Eagle 1.0.8192.54321 trusted genuine official stable beta {Fire Dragon Series, Beta 50} NetFx20 Release {Tcl 8.4.21} {2022.05.06T21:42:00.000 +0900} 48b99035ca39c1100f84abd801d0309f6ce25106 {2022-05-26 21:44:39 UTC} {Microsoft.NET 4.0.30319.42000 [4.8.4110.0 built by: NET48REL1LAST_B] 528049} {Windows NT} intel
Garuda 1.0 48b99035ca39c1100f84abd801d0309f6ce25106 {2022-05-26 21:44:39 UTC}
{object or type "ClientSettings" not found} {expected type value but got "ClientSettings"}
```

In my weak memory, your calc.exe automation script (ex2.eagle) worked when my main PC was Windows 7 and was using Garuda fetched from teapot repository hosted by ActiveState.

I tried again after making wish.exe.config beside wish.exe hoping that it works under Windows 10 + .NET 4.8 but it didn't help.

```
<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
```